refactor: Rename AppState to SplashState

This commit is contained in:
Ahmad Ansori Palembani 2024-05-28 12:08:52 +07:00
parent 4f59fbae07
commit 6eedc18f8d
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
7 changed files with 14 additions and 19 deletions

View file

@ -1,6 +1,6 @@
package dev.yokai.domain
class AppState {
var isSplashShown = false
class SplashState {
var shown = false
var ready = false
}

View file

@ -2,7 +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.SplashState
import dev.yokai.domain.extension.TrustExtension
import dev.yokai.domain.storage.StorageManager
import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider
@ -65,7 +65,7 @@ class AppModule(val app: Application) : InjektModule {
addSingletonFactory { AndroidStorageFolderProvider(app) }
addSingletonFactory { StorageManager(app, get()) }
addSingletonFactory { AppState() }
addSingletonFactory { SplashState() }
// Asynchronously init expensive components for a faster cold start
ContextCompat.getMainExecutor(app).execute {

View file

@ -12,7 +12,7 @@ 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 dev.yokai.domain.SplashState
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.main.SearchActivity
@ -30,7 +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()
internal val splashState: SplashState by injectLazy()
override fun onCreate(savedInstanceState: Bundle?) {
setLocaleByAppCompat()
@ -41,12 +41,12 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
}
fun maybeInstallSplashScreen(savedInstanceState: Bundle?): SplashScreen? {
if (appState.isSplashShown || savedInstanceState != null) {
if (splashState.shown || savedInstanceState != null) {
setTheme(R.style.Theme_Tachiyomi)
appState.ready = true
splashState.ready = true
return null
} else {
appState.isSplashShown = true
splashState.shown = true
}
return installSplashScreen()
@ -56,7 +56,7 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
val startTime = System.currentTimeMillis()
this.setKeepOnScreenCondition {
val elapsed = System.currentTimeMillis() - startTime
elapsed <= SPLASH_MIN_DURATION || (!appState.ready && elapsed <= SPLASH_MAX_DURATION)
elapsed <= SPLASH_MIN_DURATION || (!splashState.ready && elapsed <= SPLASH_MAX_DURATION)
}
this.setSplashScreenExitAnimation()
}

View file

@ -1129,7 +1129,7 @@ open class LibraryController(
emptyList()
},
)
(activity as? MainActivity)?.appState?.ready = true
(activity as? MainActivity)?.splashState?.ready = true
}
adapter.setItems(mangaMap)
if (binding.libraryGridRecycler.recycler.translationX != 0f) {

View file

@ -43,8 +43,6 @@ import androidx.core.app.ActivityCompat
import androidx.core.content.getSystemService
import androidx.core.graphics.ColorUtils
import androidx.core.net.toUri
import androidx.core.splashscreen.SplashScreen
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
@ -54,8 +52,6 @@ import androidx.core.view.forEach
import androidx.core.view.isVisible
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.interpolator.view.animation.FastOutSlowInInterpolator
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
@ -74,7 +70,6 @@ import com.google.android.material.transition.platform.MaterialContainerTransfor
import com.google.common.primitives.Floats.max
import com.google.common.primitives.Ints.max
import dev.yokai.domain.base.BasePreferences
import dev.yokai.domain.ui.settings.ReaderPreferences
import dev.yokai.presentation.extension.repo.ExtensionRepoController
import dev.yokai.presentation.onboarding.OnboardingController
import eu.kanade.tachiyomi.BuildConfig
@ -1104,7 +1099,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
else -> return false
}
appState.ready = true
splashState.ready = true
return true
}

View file

@ -171,7 +171,7 @@ class RecentsController(bundle: Bundle? = null) :
binding.recycler.recycledViewPool.setMaxRecycledViews(0, 0)
binding.recycler.addItemDecoration(RecentMangaDivider(view.context))
binding.recycler.onAnimationsFinished {
(activity as? MainActivity)?.appState?.ready = true
(activity as? MainActivity)?.splashState?.ready = true
}
adapter.isSwipeEnabled = true
adapter.itemTouchHelperCallback.setSwipeFlags(

View file

@ -142,7 +142,7 @@ class BrowseController :
binding.sourceRecycler.adapter = adapter
binding.sourceRecycler.onAnimationsFinished {
(activity as? MainActivity)?.appState?.ready = true
(activity as? MainActivity)?.splashState?.ready = true
}
adapter?.isSwipeEnabled = true
adapter?.stateRestorationPolicy = RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY