From c6268d92d108fd183d48331841937673e3491751 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Sat, 3 Feb 2024 23:28:11 +0300 Subject: [PATCH] Replace `App.applicationScope` with `processLifecycleScope` --- app/src/main/java/org/xtimms/tokusho/App.kt | 15 ++++----------- .../main/java/org/xtimms/tokusho/MainActivity.kt | 3 ++- .../org/xtimms/tokusho/core/prefs/AppSettings.kt | 10 +++++----- .../java/org/xtimms/tokusho/utils/system/Toast.kt | 4 ++-- 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/xtimms/tokusho/App.kt b/app/src/main/java/org/xtimms/tokusho/App.kt index 8098da6..6d94a7f 100644 --- a/app/src/main/java/org/xtimms/tokusho/App.kt +++ b/app/src/main/java/org/xtimms/tokusho/App.kt @@ -1,6 +1,5 @@ package org.xtimms.tokusho -import android.annotation.SuppressLint import android.app.Application import android.content.Context import android.content.pm.PackageInfo @@ -10,15 +9,14 @@ import android.os.StrictMode import com.google.android.material.color.DynamicColors import com.tencent.mmkv.MMKV import dagger.hilt.android.HiltAndroidApp -import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.launch import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.xtimms.tokusho.core.database.MangaDatabase import org.xtimms.tokusho.core.updates.Updater import org.xtimms.tokusho.crash.CrashActivity import org.xtimms.tokusho.crash.GlobalExceptionHandler +import org.xtimms.tokusho.utils.lang.processLifecycleScope import javax.inject.Inject import javax.inject.Provider @@ -31,18 +29,16 @@ class App : Application() { override fun onCreate() { super.onCreate() MMKV.initialize(this) - context = applicationContext packageInfo = packageManager.run { if (Build.VERSION.SDK_INT >= 33) getPackageInfo( packageName, PackageManager.PackageInfoFlags.of(0) ) else getPackageInfo(packageName, 0) } - applicationScope = CoroutineScope(SupervisorJob()) DynamicColors.applyToActivitiesIfAvailable(this) - applicationScope.launch((Dispatchers.IO)) { + processLifecycleScope.launch((Dispatchers.IO)) { try { - Updater.deleteOutdatedApk() + Updater.deleteOutdatedApk(this@App) } catch (_: Throwable) { } @@ -76,9 +72,9 @@ class App : Application() { companion object { - lateinit var applicationScope: CoroutineScope lateinit var packageInfo: PackageInfo + @Suppress("DEPRECATION") fun getVersionReport(): String { val versionName = packageInfo.versionName val versionCode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { @@ -95,9 +91,6 @@ class App : Application() { .append("Device information: Android $release (API ${Build.VERSION.SDK_INT})\n") .append("Supported ABIs: ${Build.SUPPORTED_ABIS.contentToString()}\n").toString() } - - @SuppressLint("StaticFieldLeak") - lateinit var context: Context } } \ No newline at end of file diff --git a/app/src/main/java/org/xtimms/tokusho/MainActivity.kt b/app/src/main/java/org/xtimms/tokusho/MainActivity.kt index bbf205f..c9810b3 100644 --- a/app/src/main/java/org/xtimms/tokusho/MainActivity.kt +++ b/app/src/main/java/org/xtimms/tokusho/MainActivity.kt @@ -44,6 +44,7 @@ import org.xtimms.tokusho.core.Navigation import org.xtimms.tokusho.core.components.BottomNavBar import org.xtimms.tokusho.core.components.TopAppBar import org.xtimms.tokusho.ui.theme.TokushoTheme +import org.xtimms.tokusho.utils.lang.processLifecycleScope import javax.inject.Inject @OptIn(ExperimentalMaterial3WindowSizeClassApi::class) @@ -83,7 +84,7 @@ class MainActivity : ComponentActivity() { val localeListCompat = if (locale.isEmpty()) LocaleListCompat.getEmptyLocaleList() else LocaleListCompat.forLanguageTags(locale) - App.applicationScope.launch(Dispatchers.Main) { + processLifecycleScope.launch(Dispatchers.Main) { AppCompatDelegate.setApplicationLocales(localeListCompat) } } diff --git a/app/src/main/java/org/xtimms/tokusho/core/prefs/AppSettings.kt b/app/src/main/java/org/xtimms/tokusho/core/prefs/AppSettings.kt index 76764cb..16039ae 100644 --- a/app/src/main/java/org/xtimms/tokusho/core/prefs/AppSettings.kt +++ b/app/src/main/java/org/xtimms/tokusho/core/prefs/AppSettings.kt @@ -13,9 +13,9 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import org.xtimms.shiki.ui.theme.SEED -import org.xtimms.tokusho.App.Companion.applicationScope import org.xtimms.tokusho.R import org.xtimms.tokusho.ui.monet.PaletteStyle +import org.xtimms.tokusho.utils.lang.processLifecycleScope import org.xtimms.tokusho.utils.system.languageMap private const val DYNAMIC_COLOR = "dynamic_color" @@ -85,7 +85,7 @@ object AppSettings { fun encodeString(key: String, string: String) = key.updateString(string) fun containsKey(key: String) = kv.containsKey(key) - fun isAutoUpdateEnabled() = AUTO_UPDATE.getBoolean(true) + fun isAutoUpdateEnabled() = AUTO_UPDATE.getBoolean(false) fun getLanguageConfiguration(languageNumber: Int = kv.decodeInt(LANGUAGE)) = languageMap.getOrElse(languageNumber) { "" } @@ -129,7 +129,7 @@ object AppSettings { darkThemeValue: Int = AppSettingsStateFlow.value.darkTheme.darkThemeValue, isHighContrastModeEnabled: Boolean = AppSettingsStateFlow.value.darkTheme.isHighContrastModeEnabled ) { - applicationScope.launch(Dispatchers.IO) { + processLifecycleScope.launch(Dispatchers.IO) { mutableAppSettingsStateFlow.update { it.copy( darkTheme = AppSettingsStateFlow.value.darkTheme.copy( @@ -144,7 +144,7 @@ object AppSettings { } fun modifyThemeSeedColor(colorArgb: Int, paletteStyleIndex: Int) { - applicationScope.launch(Dispatchers.IO) { + processLifecycleScope.launch(Dispatchers.IO) { mutableAppSettingsStateFlow.update { it.copy(seedColor = colorArgb, paletteStyleIndex = paletteStyleIndex) } @@ -154,7 +154,7 @@ object AppSettings { } fun switchDynamicColor(enabled: Boolean = !mutableAppSettingsStateFlow.value.isDynamicColorEnabled) { - applicationScope.launch(Dispatchers.IO) { + processLifecycleScope.launch(Dispatchers.IO) { mutableAppSettingsStateFlow.update { it.copy(isDynamicColorEnabled = enabled) } diff --git a/app/src/main/java/org/xtimms/tokusho/utils/system/Toast.kt b/app/src/main/java/org/xtimms/tokusho/utils/system/Toast.kt index e28b193..cbf6eac 100644 --- a/app/src/main/java/org/xtimms/tokusho/utils/system/Toast.kt +++ b/app/src/main/java/org/xtimms/tokusho/utils/system/Toast.kt @@ -5,7 +5,7 @@ import android.widget.Toast import androidx.annotation.StringRes import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -import org.xtimms.tokusho.App.Companion.applicationScope +import org.xtimms.tokusho.utils.lang.processLifecycleScope fun Context.toast(message: String) { Toast.makeText(this, message, Toast.LENGTH_SHORT).show() @@ -16,7 +16,7 @@ fun Context.toast(@StringRes stringRes: Int) { } fun Context.suspendToast(@StringRes stringRes: Int) { - applicationScope.launch(Dispatchers.Main) { + processLifecycleScope.launch(Dispatchers.Main) { toast(getString(stringRes)) } }