mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
fix: Actually make AppState singleton
This commit is contained in:
parent
1c8d546a3d
commit
4f59fbae07
8 changed files with 8 additions and 17 deletions
|
@ -31,7 +31,6 @@ import coil3.request.allowHardware
|
|||
import coil3.request.allowRgb565
|
||||
import coil3.request.crossfade
|
||||
import coil3.util.DebugLogger
|
||||
import dev.yokai.domain.AppState
|
||||
import eu.kanade.tachiyomi.appwidget.TachiyomiWidgetManager
|
||||
import eu.kanade.tachiyomi.data.coil.CoilDiskCache
|
||||
import eu.kanade.tachiyomi.data.coil.InputStreamFetcher
|
||||
|
@ -67,8 +66,6 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
|
|||
|
||||
val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
val state: AppState by lazy { AppState() }
|
||||
|
||||
private val disableIncognitoReceiver = DisableIncognitoReceiver()
|
||||
|
||||
@SuppressLint("LaunchActivityFromNotification")
|
||||
|
|
|
@ -2,6 +2,7 @@ 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 dev.yokai.domain.storage.StorageManager
|
||||
import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider
|
||||
|
@ -64,8 +65,9 @@ class AppModule(val app: Application) : InjektModule {
|
|||
addSingletonFactory { AndroidStorageFolderProvider(app) }
|
||||
addSingletonFactory { StorageManager(app, get()) }
|
||||
|
||||
// Asynchronously init expensive components for a faster cold start
|
||||
addSingletonFactory { AppState() }
|
||||
|
||||
// Asynchronously init expensive components for a faster cold start
|
||||
ContextCompat.getMainExecutor(app).execute {
|
||||
get<NetworkHelper>()
|
||||
|
||||
|
|
|
@ -12,12 +12,11 @@ import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
|||
import androidx.interpolator.view.animation.FastOutSlowInInterpolator
|
||||
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import dev.yokai.domain.AppState
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.main.SearchActivity
|
||||
import eu.kanade.tachiyomi.ui.security.SecureActivityDelegate
|
||||
import eu.kanade.tachiyomi.util.system.appState
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.getThemeWithExtras
|
||||
import eu.kanade.tachiyomi.util.system.setLocaleByAppCompat
|
||||
|
@ -31,6 +30,7 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
|
|||
val isBindingInitialized get() = this::binding.isInitialized
|
||||
|
||||
private var updatedTheme: Resources.Theme? = null
|
||||
internal val appState: AppState by injectLazy()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setLocaleByAppCompat()
|
||||
|
|
|
@ -94,7 +94,6 @@ import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
|||
import eu.kanade.tachiyomi.ui.source.globalsearch.GlobalSearchController
|
||||
import eu.kanade.tachiyomi.util.isLocal
|
||||
import eu.kanade.tachiyomi.util.moveCategories
|
||||
import eu.kanade.tachiyomi.util.system.appState
|
||||
import eu.kanade.tachiyomi.util.system.contextCompatDrawable
|
||||
import eu.kanade.tachiyomi.util.system.disableItems
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
|
@ -1130,7 +1129,7 @@ open class LibraryController(
|
|||
emptyList()
|
||||
},
|
||||
)
|
||||
view?.context?.appState?.ready = true
|
||||
(activity as? MainActivity)?.appState?.ready = true
|
||||
}
|
||||
adapter.setItems(mangaMap)
|
||||
if (binding.libraryGridRecycler.recycler.translationX != 0f) {
|
||||
|
|
|
@ -113,7 +113,6 @@ 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
|
||||
|
|
|
@ -55,7 +55,6 @@ import eu.kanade.tachiyomi.ui.recents.options.TabbedRecentsOptionsSheet
|
|||
import eu.kanade.tachiyomi.ui.source.browse.ProgressItem
|
||||
import eu.kanade.tachiyomi.util.chapter.updateTrackChapterMarkedAsRead
|
||||
import eu.kanade.tachiyomi.util.system.addCheckBoxPrompt
|
||||
import eu.kanade.tachiyomi.util.system.appState
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.getBottomGestureInsets
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
|
@ -172,7 +171,7 @@ class RecentsController(bundle: Bundle? = null) :
|
|||
binding.recycler.recycledViewPool.setMaxRecycledViews(0, 0)
|
||||
binding.recycler.addItemDecoration(RecentMangaDivider(view.context))
|
||||
binding.recycler.onAnimationsFinished {
|
||||
view.context.appState.ready = true
|
||||
(activity as? MainActivity)?.appState?.ready = true
|
||||
}
|
||||
adapter.isSwipeEnabled = true
|
||||
adapter.itemTouchHelperCallback.setSwipeFlags(
|
||||
|
|
|
@ -45,7 +45,6 @@ import eu.kanade.tachiyomi.ui.setting.SettingsBrowseController
|
|||
import eu.kanade.tachiyomi.ui.setting.SettingsSourcesController
|
||||
import eu.kanade.tachiyomi.ui.source.browse.BrowseSourceController
|
||||
import eu.kanade.tachiyomi.ui.source.globalsearch.GlobalSearchController
|
||||
import eu.kanade.tachiyomi.util.system.appState
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.getBottomGestureInsets
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
|
@ -143,7 +142,7 @@ class BrowseController :
|
|||
|
||||
binding.sourceRecycler.adapter = adapter
|
||||
binding.sourceRecycler.onAnimationsFinished {
|
||||
view.context.appState.ready = true
|
||||
(activity as? MainActivity)?.appState?.ready = true
|
||||
}
|
||||
adapter?.isSwipeEnabled = true
|
||||
adapter?.stateRestorationPolicy = RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY
|
||||
|
|
|
@ -37,7 +37,6 @@ 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
|
||||
|
@ -481,8 +480,5 @@ val Context.systemLangContext: Context
|
|||
val Context.application: App
|
||||
get() = applicationContext as App
|
||||
|
||||
val Context.appState: AppState
|
||||
get() = application.state
|
||||
|
||||
suspend fun <T> withNonCancellableContext(block: suspend CoroutineScope.() -> T) =
|
||||
withContext(NonCancellable, block)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue