@@ -24,7 +24,6 @@ import android.content.SharedPreferences
24
24
import android.graphics.Bitmap
25
25
import android.graphics.BitmapFactory
26
26
import android.media.AudioAttributes
27
- import android.media.AudioManager
28
27
import android.media.MediaPlayer
29
28
import android.os.Build
30
29
import android.os.Bundle
@@ -82,8 +81,9 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
82
81
override fun onCreate (savedInstanceState : Bundle ? ) {
83
82
nekoprefs = getSharedPreferences(NekoSettingsActivity .SETTINGS , MODE_PRIVATE )
84
83
setupState()
85
- if (state == 3 ) {
84
+ if (state == 3 ) {
86
85
finish()
86
+ return
87
87
}
88
88
setupDarkMode()
89
89
setTheme(NekoApplication .getNekoTheme(this ))
@@ -93,15 +93,9 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
93
93
viewPager = findViewById(R .id.pager)
94
94
cord = findViewById(R .id.coordinator)
95
95
navbar = findViewById(R .id.navigation)
96
- Runnable {
97
- pagerAdapter = NekoAdapter (this )
98
- runOnUiThread {
99
- setupNavbarListener()
100
- if (needWelcomeDialog) welcomeDialog()
101
- if (getAndroidV()) androidVDialog()
102
- }
103
- }.run ()
96
+ setupNavbarListener()
104
97
mPrefs!! .setListener(this )
98
+ pagerAdapter = NekoAdapter (this )
105
99
viewPager?.adapter = pagerAdapter
106
100
val toolbar = findViewById<Toolbar >(R .id.toolbar)
107
101
setSupportActionBar(toolbar)
@@ -115,7 +109,9 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
115
109
try {
116
110
val bmp = BitmapFactory .decodeFile(mPrefs!! .backgroundPath)
117
111
val bmpNew = Bitmap .createBitmap(bmp, viewPager!! .x.toInt(), viewPager!! .y.toInt(), bmp.width, bmp.height, null , true )
118
- cord!! .background = bmpNew.toDrawable(resources)
112
+ runOnUiThread {
113
+ cord!! .background = bmpNew.toDrawable(resources)
114
+ }
119
115
} catch (ex: Exception ) {
120
116
cord!! .background = null
121
117
cord!! .post {
@@ -124,11 +120,11 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
124
120
}
125
121
}
126
122
}
127
- if (! nekoprefs!! .getBoolean(" controlsFirst" , false )) {
128
- viewPager!! .currentItem = 0
123
+ if (! nekoprefs? .getBoolean(" controlsFirst" , false )!! ) {
124
+ viewPager? .currentItem = 0
129
125
navbar?.selectedItemId = R .id.collection
130
126
} else {
131
- viewPager!! .currentItem = 1
127
+ viewPager? .currentItem = 1
132
128
navbar?.selectedItemId = R .id.controls
133
129
}
134
130
viewPager?.registerOnPageChangeCallback(object : ViewPager2 .OnPageChangeCallback () {
@@ -142,20 +138,25 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
142
138
}
143
139
}
144
140
})
141
+ }
142
+
143
+ override fun onStart () {
144
+ super .onStart()
145
145
mediaPlayer = MediaPlayer ()
146
+ val afd = getResources().assets.openFd(" music/music1.mp3" )
147
+ mediaPlayer!! .isLooping = true
148
+ mediaPlayer!! .setDataSource(afd.fileDescriptor, afd.startOffset, afd.getLength())
149
+ mediaPlayer!! .setAudioAttributes(
150
+ AudioAttributes .Builder ()
151
+ .setContentType(AudioAttributes .CONTENT_TYPE_MUSIC )
152
+ .build())
146
153
if (mPrefs!! .isMusicEnabled()) {
147
- val afd = getResources().assets.openFd(" music/music1.mp3" )
148
- mediaPlayer!! .isLooping = true
149
- mediaPlayer!! .setDataSource(afd.fileDescriptor, afd.startOffset, afd.getLength())
150
- mediaPlayer!! .setAudioAttributes(
151
- AudioAttributes .Builder ()
152
- .setContentType(AudioAttributes .CONTENT_TYPE_MUSIC )
153
- .build())
154
154
mediaPlayer!! .prepare()
155
155
mediaPlayer!! .start()
156
156
isMusicPlaying = true
157
-
158
157
}
158
+ if (getAndroidV()) androidVDialog()
159
+ if (needWelcomeDialog) welcomeDialog()
159
160
}
160
161
private fun getAndroidV (): Boolean {
161
162
return (Build .VERSION .SDK_INT <= Build .VERSION_CODES .N_MR1 )
@@ -210,7 +211,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
210
211
}
211
212
}
212
213
public override fun onDestroy () {
213
- mPrefs!! .setListener(null )
214
+ mPrefs? .setListener(null )
214
215
super .onDestroy()
215
216
if (mPrefs!! .isMusicEnabled()) {
216
217
isMusicPlaying = false
@@ -219,10 +220,18 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
219
220
}
220
221
public override fun onPause () {
221
222
super .onPause()
223
+ if (isMusicPlaying) {
224
+ mediaPlayer?.pause()
225
+ isMusicPlaying = false
226
+ }
222
227
}
223
228
224
229
public override fun onResume () {
225
230
super .onResume()
231
+ if (! isMusicPlaying && mPrefs!! .isMusicEnabled()) {
232
+ mediaPlayer?.start()
233
+ isMusicPlaying = true
234
+ }
226
235
}
227
236
private fun setupDarkMode () {
228
237
when (nekoprefs!! .getInt(" darktheme" , 0 )) {
@@ -327,15 +336,15 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
327
336
} else if (promo == " hello" || promo == " Hello" ) {
328
337
showSnackBar(" Hi!" , Snackbar .LENGTH_SHORT , navbar)
329
338
} else if (promo == " give me 1000 cats please" ) {
330
- Thread {
339
+ CoroutineScope ( Dispatchers . Default ).launch {
331
340
for (i in 0 .. 1000 ) {
332
- val cat: Cat = NekoWorker .newRandomCat(this , mPrefs!! , true )
341
+ val cat: Cat = NekoWorker .newRandomCat(this @NekoGeneralActivity , mPrefs!! , true )
333
342
mPrefs?.addCat(cat)
334
343
}
335
344
runOnUiThread {
336
345
showSnackBar(" enjoy =)" , Snackbar .LENGTH_LONG , navbar)
337
346
}
338
- }.start()
347
+ }
339
348
} else {
340
349
showSnackBar(getString(R .string.wrong_code), Snackbar .LENGTH_LONG , navbar)
341
350
}
@@ -364,7 +373,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
364
373
.setCancelable(false )
365
374
.setPositiveButton(android.R .string.ok) { _: DialogInterface ? , _: Int ->
366
375
showSnackBar(getString(R .string.welcome_dialog_final), Snackbar .LENGTH_LONG , navbar)
367
- setCurrentTheme (0 )
376
+ setCurrentState (0 )
368
377
}.show()
369
378
}
370
379
val editor = nekoprefs!! .edit()
@@ -394,7 +403,6 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
394
403
.setFlags(Intent .FLAG_ACTIVITY_NEW_TASK
395
404
or Intent .FLAG_ACTIVITY_CLEAR_TASK ))
396
405
}
397
-
398
406
2 -> needWelcomeDialog = true
399
407
}
400
408
}
@@ -403,6 +411,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
403
411
return state
404
412
}
405
413
private fun welcomeDialog () {
414
+ needWelcomeDialog = false
406
415
MaterialAlertDialogBuilder (this )
407
416
.setTitle(R .string.app_name_neko)
408
417
.setIcon(R .drawable.ic_bowl)
@@ -419,7 +428,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
419
428
cat = NekoWorker .newRandomCat(this , mPrefs!! , true )
420
429
mPrefs?.addCat(cat)
421
430
}
422
- setCurrentTheme (- 1 )
431
+ setCurrentState (- 1 )
423
432
MaterialAlertDialogBuilder (this )
424
433
.setTitle(R .string.app_name_neko)
425
434
.setIcon(R .drawable.ic_fullcat_icon)
@@ -429,7 +438,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
429
438
) { _: DialogInterface ? , _: Int -> showSnackBar(getString(R .string.open_controls_tip), Snackbar .LENGTH_LONG , navbar) }.show()
430
439
}
431
440
432
- private fun setCurrentTheme (state : Int ) {
441
+ private fun setCurrentState (state : Int ) {
433
442
val editor = nekoprefs!! .edit()
434
443
editor.putInt(" state" , state)
435
444
editor.apply ()
0 commit comments