fix: Hopefully fix race condition

This commit is contained in:
ziro 2024-02-11 08:14:42 +07:00
parent 580cf710ed
commit d05c0dbeda
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
4 changed files with 17 additions and 9 deletions

View file

@ -20,6 +20,7 @@ import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.multidex.MultiDex
import dev.yokai.domain.AppState
import eu.kanade.tachiyomi.appwidget.TachiyomiWidgetManager
import eu.kanade.tachiyomi.data.image.coil.CoilSetup
import eu.kanade.tachiyomi.data.notification.Notifications
@ -47,6 +48,8 @@ open class App : Application(), DefaultLifecycleObserver {
val preferences: PreferencesHelper by injectLazy()
val state: AppState by lazy { AppState() }
private val disableIncognitoReceiver = DisableIncognitoReceiver()
@SuppressLint("LaunchActivityFromNotification")

View file

@ -2,17 +2,13 @@ package eu.kanade.tachiyomi.di
import android.app.Application
import androidx.core.content.ContextCompat
import dev.yokai.domain.AppState
import dev.yokai.domain.extension.TrustExtension
import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore
import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.data.cache.ChapterCache
import eu.kanade.tachiyomi.data.cache.CoverCache
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.library.CustomMangaManager
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackPreferences
import eu.kanade.tachiyomi.extension.ExtensionManager
import eu.kanade.tachiyomi.network.JavaScriptEngine
import eu.kanade.tachiyomi.network.NetworkHelper
@ -20,7 +16,11 @@ import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.util.chapter.ChapterFilter
import eu.kanade.tachiyomi.util.manga.MangaShortcutManager
import kotlinx.serialization.json.Json
import uy.kohesive.injekt.api.*
import uy.kohesive.injekt.api.InjektModule
import uy.kohesive.injekt.api.InjektRegistrar
import uy.kohesive.injekt.api.addSingleton
import uy.kohesive.injekt.api.addSingletonFactory
import uy.kohesive.injekt.api.get
class AppModule(val app: Application) : InjektModule {
@ -59,8 +59,6 @@ class AppModule(val app: Application) : InjektModule {
addSingletonFactory { TrustExtension() }
addSingletonFactory { AppState() }
// Asynchronously init expensive components for a faster cold start
ContextCompat.getMainExecutor(app).execute {

View file

@ -74,7 +74,6 @@ import com.google.android.material.snackbar.Snackbar
import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback
import com.google.common.primitives.Floats.max
import com.google.common.primitives.Ints.max
import dev.yokai.domain.AppState
import dev.yokai.presentation.extension.repo.ExtensionRepoController
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.Migrations
@ -112,6 +111,7 @@ import eu.kanade.tachiyomi.ui.source.BrowseController
import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController
import eu.kanade.tachiyomi.util.manga.MangaCoverMetadata
import eu.kanade.tachiyomi.util.manga.MangaShortcutManager
import eu.kanade.tachiyomi.util.system.appState
import eu.kanade.tachiyomi.util.system.contextCompatDrawable
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.getResourceColor
@ -241,7 +241,6 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
}
}
private val appState: AppState by injectLazy()
var ready = false
override fun onCreate(savedInstanceState: Bundle?) {

View file

@ -36,6 +36,8 @@ import androidx.work.CoroutineWorker
import androidx.work.WorkInfo
import androidx.work.WorkManager
import com.hippo.unifile.UniFile
import dev.yokai.domain.AppState
import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
@ -468,3 +470,9 @@ val Context.systemLangContext: Context
configuration.setLocale(systemLocale)
return createConfigurationContext(configuration)
}
val Context.application: App
get() = applicationContext as App
val Context.appState: AppState
get() = application.state