From 00baed7058122e3cae9e70203c0f7f7b742f1e4c Mon Sep 17 00:00:00 2001 From: ziro Date: Mon, 12 Feb 2024 09:01:37 +0700 Subject: [PATCH] refactor: Split off the function even more --- .../tachiyomi/ui/base/activity/BaseActivity.kt | 12 +++++++----- .../java/eu/kanade/tachiyomi/ui/main/MainActivity.kt | 6 +++--- .../eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt | 6 +++--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt index b12c3f52e1..cd549b6ac1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/activity/BaseActivity.kt @@ -49,17 +49,19 @@ abstract class BaseActivity : AppCompatActivity() { appState.isSplashShown = true } - val splashScreen = installSplashScreen() + return installSplashScreen() + } + + fun SplashScreen.configure() { val startTime = System.currentTimeMillis() - splashScreen.setKeepOnScreenCondition { + this.setKeepOnScreenCondition { val elapsed = System.currentTimeMillis() - startTime elapsed <= SPLASH_MIN_DURATION || (!appState.ready && elapsed <= SPLASH_MAX_DURATION) } - - return splashScreen + this.setSplashScreenExitAnimation() } - fun SplashScreen.setSplashScreenExitAnimation() { + private fun SplashScreen.setSplashScreenExitAnimation() { val root = findViewById(android.R.id.content) if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index cb083c5d6a..68ea7c2a6d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -242,6 +242,8 @@ open class MainActivity : BaseActivity() { } override fun onCreate(savedInstanceState: Bundle?) { + val splashScreen = maybeInstallSplashScreen(savedInstanceState) + // Set up shared element transition and disable overlay so views don't show above system bars window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) setExitSharedElementCallback( @@ -266,8 +268,6 @@ open class MainActivity : BaseActivity() { ) window.sharedElementsUseOverlay = false - val splashScreen = maybeInstallSplashScreen(savedInstanceState) - super.onCreate(savedInstanceState) backPressedCallback = object : OnBackPressedCallback(enabled = true) { @@ -652,7 +652,7 @@ open class MainActivity : BaseActivity() { (router.backstack.lastOrNull()?.controller as? BaseLegacyController<*>)?.setTitle() (router.backstack.lastOrNull()?.controller as? SettingsController)?.setTitle() - splashScreen?.setSplashScreenExitAnimation() + splashScreen?.configure() getExtensionUpdates(true) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt index 8f48d9609f..952ea6c88b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt @@ -275,6 +275,8 @@ class ReaderActivity : BaseActivity() { * Called when the activity is created. Initializes the view model and configuration. */ override fun onCreate(savedInstanceState: Bundle?) { + val splashScreen = maybeInstallSplashScreen(savedInstanceState) + // Setup shared element transitions if (intent.extras?.getString(TRANSITION_NAME) != null) { window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) @@ -291,8 +293,6 @@ class ReaderActivity : BaseActivity() { } } - val splashScreen = maybeInstallSplashScreen(savedInstanceState) - super.onCreate(savedInstanceState) binding = ReaderActivityBinding.inflate(layoutInflater) setContentView(binding.root) @@ -301,7 +301,7 @@ class ReaderActivity : BaseActivity() { a.recycle() setCutoutMode() - splashScreen?.setSplashScreenExitAnimation() + splashScreen?.configure() wic.isAppearanceLightStatusBars = lightStatusBar wic.isAppearanceLightNavigationBars = lightStatusBar