Skip to content
This repository was archived by the owner on Dec 31, 2024. It is now read-only.

Commit a331c18

Browse files
committed
2.3_08
1 parent 3f8b867 commit a331c18

23 files changed

+641
-166
lines changed

app/build.gradle

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,11 @@ android {
1515
applicationId "ru.dimon6018.neko11"
1616
minSdk 23
1717
targetSdk = 34
18-
versionCode 7
19-
versionName '2.3_04'
18+
versionCode 8
19+
versionName '2.3_08'
2020
multiDexEnabled false
2121
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2222
}
23-
signingConfigs {
24-
release {
25-
}
26-
}
2723
buildTypes {
2824
release {
2925
minifyEnabled true
@@ -48,7 +44,7 @@ dependencies {
4844
implementation 'androidx.recyclerview:recyclerview:1.4.0-alpha01'
4945
implementation 'androidx.core:core:1.12.0'
5046
implementation 'androidx.core:core-ktx:1.12.0'
51-
implementation 'androidx.fragment:fragment:1.7.0-alpha08'
47+
implementation 'androidx.fragment:fragment:1.7.0-alpha09'
5248
implementation "androidx.viewpager2:viewpager2:1.1.0-beta02"
5349
implementation 'androidx.work:work-runtime:2.9.0'
5450

app/src/main/java/ru/dimon6018/neko11/NekoApplication.kt

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,8 @@
1515
*/
1616
package ru.dimon6018.neko11
1717

18-
import android.annotation.SuppressLint
1918
import android.app.Application
2019
import android.content.Context
21-
import android.content.res.Resources
22-
import android.media.AudioAttributes
23-
import android.media.MediaPlayer
2420
import ru.dimon6018.neko11.ui.activities.NekoSettingsActivity
2521
import ru.dimon6018.neko11.workers.Cat
2622
import ru.dimon6018.neko11.workers.ExceptionHandler
@@ -32,13 +28,9 @@ class NekoApplication : Application() {
3228
ExceptionHandler.setContext(applicationContext)
3329
Thread.setDefaultUncaughtExceptionHandler(ExceptionHandler())
3430
super.onCreate()
35-
nekoContext = applicationContext
3631
}
3732

3833
companion object {
39-
@SuppressLint("StaticFieldLeak")
40-
var nekoContext: Context? = null
41-
private set
4234
private var accentColors = intArrayOf(
4335
R.color.pink_theme_primary, R.color.red_theme_primary, R.color.yellow_theme_primary, R.color.green_theme_primary,
4436
R.color.lime_theme_primary, R.color.aqua_theme_primary, R.color.blue_theme_primary
@@ -85,22 +77,5 @@ class NekoApplication : Application() {
8577
android.R.color.white
8678
}
8779
}
88-
fun playMusic(mPrefs: PrefState, resources: Resources) {
89-
if(NekoGeneralActivity.mediaPlayer == null) {
90-
NekoGeneralActivity.mediaPlayer = MediaPlayer()
91-
}
92-
val afd = resources.assets.openFd("music/music1.mp3")
93-
NekoGeneralActivity.mediaPlayer!!.isLooping = true
94-
NekoGeneralActivity.mediaPlayer!!.setDataSource(afd.fileDescriptor, afd.startOffset, afd.getLength())
95-
NekoGeneralActivity.mediaPlayer!!.setAudioAttributes(
96-
AudioAttributes.Builder()
97-
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
98-
.build())
99-
if(mPrefs.isMusicEnabled()) {
100-
NekoGeneralActivity.mediaPlayer!!.prepare()
101-
NekoGeneralActivity.mediaPlayer!!.start()
102-
NekoGeneralActivity.isMusicPlaying = true
103-
}
104-
}
10580
}
10681
}

app/src/main/java/ru/dimon6018/neko11/NekoGeneralActivity.kt

Lines changed: 39 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import android.content.SharedPreferences
2424
import android.graphics.Bitmap
2525
import android.graphics.BitmapFactory
2626
import android.media.AudioAttributes
27-
import android.media.AudioManager
2827
import android.media.MediaPlayer
2928
import android.os.Build
3029
import android.os.Bundle
@@ -82,8 +81,9 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
8281
override fun onCreate(savedInstanceState: Bundle?) {
8382
nekoprefs = getSharedPreferences(NekoSettingsActivity.SETTINGS, MODE_PRIVATE)
8483
setupState()
85-
if(state == 3) {
84+
if (state == 3) {
8685
finish()
86+
return
8787
}
8888
setupDarkMode()
8989
setTheme(NekoApplication.getNekoTheme(this))
@@ -93,15 +93,9 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
9393
viewPager = findViewById(R.id.pager)
9494
cord = findViewById(R.id.coordinator)
9595
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()
10497
mPrefs!!.setListener(this)
98+
pagerAdapter = NekoAdapter(this)
10599
viewPager?.adapter = pagerAdapter
106100
val toolbar = findViewById<Toolbar>(R.id.toolbar)
107101
setSupportActionBar(toolbar)
@@ -115,7 +109,9 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
115109
try {
116110
val bmp = BitmapFactory.decodeFile(mPrefs!!.backgroundPath)
117111
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+
}
119115
} catch (ex: Exception) {
120116
cord!!.background = null
121117
cord!!.post {
@@ -124,11 +120,11 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
124120
}
125121
}
126122
}
127-
if (!nekoprefs!!.getBoolean("controlsFirst", false)) {
128-
viewPager!!.currentItem = 0
123+
if (!nekoprefs?.getBoolean("controlsFirst", false)!!) {
124+
viewPager?.currentItem = 0
129125
navbar?.selectedItemId = R.id.collection
130126
} else {
131-
viewPager!!.currentItem = 1
127+
viewPager?.currentItem = 1
132128
navbar?.selectedItemId = R.id.controls
133129
}
134130
viewPager?.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
@@ -142,20 +138,25 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
142138
}
143139
}
144140
})
141+
}
142+
143+
override fun onStart() {
144+
super.onStart()
145145
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())
146153
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())
154154
mediaPlayer!!.prepare()
155155
mediaPlayer!!.start()
156156
isMusicPlaying = true
157-
158157
}
158+
if (getAndroidV()) androidVDialog()
159+
if (needWelcomeDialog) welcomeDialog()
159160
}
160161
private fun getAndroidV(): Boolean {
161162
return (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1)
@@ -210,7 +211,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
210211
}
211212
}
212213
public override fun onDestroy() {
213-
mPrefs!!.setListener(null)
214+
mPrefs?.setListener(null)
214215
super.onDestroy()
215216
if(mPrefs!!.isMusicEnabled()) {
216217
isMusicPlaying = false
@@ -219,10 +220,18 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
219220
}
220221
public override fun onPause() {
221222
super.onPause()
223+
if(isMusicPlaying) {
224+
mediaPlayer?.pause()
225+
isMusicPlaying = false
226+
}
222227
}
223228

224229
public override fun onResume() {
225230
super.onResume()
231+
if(!isMusicPlaying && mPrefs!!.isMusicEnabled()) {
232+
mediaPlayer?.start()
233+
isMusicPlaying = true
234+
}
226235
}
227236
private fun setupDarkMode() {
228237
when (nekoprefs!!.getInt("darktheme", 0)) {
@@ -327,15 +336,15 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
327336
} else if (promo == "hello" || promo == "Hello") {
328337
showSnackBar("Hi!", Snackbar.LENGTH_SHORT, navbar)
329338
} else if (promo == "give me 1000 cats please") {
330-
Thread {
339+
CoroutineScope(Dispatchers.Default).launch {
331340
for (i in 0..1000) {
332-
val cat: Cat = NekoWorker.newRandomCat(this, mPrefs!!, true)
341+
val cat: Cat = NekoWorker.newRandomCat(this@NekoGeneralActivity, mPrefs!!, true)
333342
mPrefs?.addCat(cat)
334343
}
335344
runOnUiThread {
336345
showSnackBar("enjoy =)", Snackbar.LENGTH_LONG, navbar)
337346
}
338-
}.start()
347+
}
339348
} else {
340349
showSnackBar(getString(R.string.wrong_code), Snackbar.LENGTH_LONG, navbar)
341350
}
@@ -364,7 +373,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
364373
.setCancelable(false)
365374
.setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int ->
366375
showSnackBar(getString(R.string.welcome_dialog_final), Snackbar.LENGTH_LONG, navbar)
367-
setCurrentTheme(0)
376+
setCurrentState(0)
368377
}.show()
369378
}
370379
val editor = nekoprefs!!.edit()
@@ -394,7 +403,6 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
394403
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
395404
or Intent.FLAG_ACTIVITY_CLEAR_TASK))
396405
}
397-
398406
2 -> needWelcomeDialog = true
399407
}
400408
}
@@ -403,6 +411,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
403411
return state
404412
}
405413
private fun welcomeDialog() {
414+
needWelcomeDialog = false
406415
MaterialAlertDialogBuilder(this)
407416
.setTitle(R.string.app_name_neko)
408417
.setIcon(R.drawable.ic_bowl)
@@ -419,7 +428,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
419428
cat = NekoWorker.newRandomCat(this, mPrefs!!, true)
420429
mPrefs?.addCat(cat)
421430
}
422-
setCurrentTheme(-1)
431+
setCurrentState(-1)
423432
MaterialAlertDialogBuilder(this)
424433
.setTitle(R.string.app_name_neko)
425434
.setIcon(R.drawable.ic_fullcat_icon)
@@ -429,7 +438,7 @@ class NekoGeneralActivity : AppCompatActivity(), PrefsListener {
429438
) { _: DialogInterface?, _: Int -> showSnackBar(getString(R.string.open_controls_tip), Snackbar.LENGTH_LONG, navbar) }.show()
430439
}
431440

432-
private fun setCurrentTheme(state: Int) {
441+
private fun setCurrentState(state: Int) {
433442
val editor = nekoprefs!!.edit()
434443
editor.putInt("state", state)
435444
editor.apply()

0 commit comments

Comments
 (0)