refactor: Split off the function even more

This commit is contained in:
ziro 2024-02-12 09:01:37 +07:00
parent c4ed991c79
commit 00baed7058
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
3 changed files with 13 additions and 11 deletions

View file

@ -49,17 +49,19 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
appState.isSplashShown = true appState.isSplashShown = true
} }
val splashScreen = installSplashScreen() return installSplashScreen()
}
fun SplashScreen.configure() {
val startTime = System.currentTimeMillis() val startTime = System.currentTimeMillis()
splashScreen.setKeepOnScreenCondition { this.setKeepOnScreenCondition {
val elapsed = System.currentTimeMillis() - startTime val elapsed = System.currentTimeMillis() - startTime
elapsed <= SPLASH_MIN_DURATION || (!appState.ready && elapsed <= SPLASH_MAX_DURATION) elapsed <= SPLASH_MIN_DURATION || (!appState.ready && elapsed <= SPLASH_MAX_DURATION)
} }
this.setSplashScreenExitAnimation()
return splashScreen
} }
fun SplashScreen.setSplashScreenExitAnimation() { private fun SplashScreen.setSplashScreenExitAnimation() {
val root = findViewById<View>(android.R.id.content) val root = findViewById<View>(android.R.id.content)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {

View file

@ -242,6 +242,8 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
} }
override fun onCreate(savedInstanceState: Bundle?) { 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 // Set up shared element transition and disable overlay so views don't show above system bars
window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)
setExitSharedElementCallback( setExitSharedElementCallback(
@ -266,8 +268,6 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
) )
window.sharedElementsUseOverlay = false window.sharedElementsUseOverlay = false
val splashScreen = maybeInstallSplashScreen(savedInstanceState)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
backPressedCallback = object : OnBackPressedCallback(enabled = true) { backPressedCallback = object : OnBackPressedCallback(enabled = true) {
@ -652,7 +652,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
(router.backstack.lastOrNull()?.controller as? BaseLegacyController<*>)?.setTitle() (router.backstack.lastOrNull()?.controller as? BaseLegacyController<*>)?.setTitle()
(router.backstack.lastOrNull()?.controller as? SettingsController)?.setTitle() (router.backstack.lastOrNull()?.controller as? SettingsController)?.setTitle()
splashScreen?.setSplashScreenExitAnimation() splashScreen?.configure()
getExtensionUpdates(true) getExtensionUpdates(true)

View file

@ -275,6 +275,8 @@ class ReaderActivity : BaseActivity<ReaderActivityBinding>() {
* Called when the activity is created. Initializes the view model and configuration. * Called when the activity is created. Initializes the view model and configuration.
*/ */
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = maybeInstallSplashScreen(savedInstanceState)
// Setup shared element transitions // Setup shared element transitions
if (intent.extras?.getString(TRANSITION_NAME) != null) { if (intent.extras?.getString(TRANSITION_NAME) != null) {
window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)
@ -291,8 +293,6 @@ class ReaderActivity : BaseActivity<ReaderActivityBinding>() {
} }
} }
val splashScreen = maybeInstallSplashScreen(savedInstanceState)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
binding = ReaderActivityBinding.inflate(layoutInflater) binding = ReaderActivityBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
@ -301,7 +301,7 @@ class ReaderActivity : BaseActivity<ReaderActivityBinding>() {
a.recycle() a.recycle()
setCutoutMode() setCutoutMode()
splashScreen?.setSplashScreenExitAnimation() splashScreen?.configure()
wic.isAppearanceLightStatusBars = lightStatusBar wic.isAppearanceLightStatusBars = lightStatusBar
wic.isAppearanceLightNavigationBars = lightStatusBar wic.isAppearanceLightNavigationBars = lightStatusBar