Fix light navigation bar not applied on first launch (#5582)
No need to touch light system bars when running the splash screen since
they're not that noticeable, and it also breaks on some ROMs.
(cherry picked from commit 116fec208b)
This commit is contained in:
@@ -19,7 +19,6 @@ import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.WindowInsetsControllerCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.interpolator.view.animation.FastOutSlowInInterpolator
|
||||
@@ -347,12 +346,6 @@ class MainActivity : BaseViewBindingActivity<MainActivityBinding>() {
|
||||
window.statusBarColor = Color.TRANSPARENT
|
||||
window.navigationBarColor = Color.TRANSPARENT
|
||||
|
||||
val wicc = WindowInsetsControllerCompat(window, window.decorView)
|
||||
val isLightStatusBars = wicc.isAppearanceLightStatusBars
|
||||
val isLightNavigationBars = wicc.isAppearanceLightNavigationBars
|
||||
wicc.isAppearanceLightStatusBars = false
|
||||
wicc.isAppearanceLightNavigationBars = false
|
||||
|
||||
splashScreen.setOnExitAnimationListener { splashProvider ->
|
||||
// For some reason the SplashScreen applies (incorrect) Y translation to the iconView
|
||||
splashProvider.iconView.translationY = 0F
|
||||
@@ -366,19 +359,12 @@ class MainActivity : BaseViewBindingActivity<MainActivityBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
var barColorRestored = false
|
||||
val splashAnim = ValueAnimator.ofFloat(1F, 0F).apply {
|
||||
interpolator = FastOutSlowInInterpolator()
|
||||
duration = SPLASH_EXIT_ANIM_DURATION
|
||||
addUpdateListener { va ->
|
||||
val value = va.animatedValue as Float
|
||||
splashProvider.view.alpha = value
|
||||
|
||||
if (!barColorRestored && value <= 0.5F) {
|
||||
barColorRestored = true
|
||||
wicc.isAppearanceLightStatusBars = isLightStatusBars
|
||||
wicc.isAppearanceLightNavigationBars = isLightNavigationBars
|
||||
}
|
||||
}
|
||||
doOnEnd {
|
||||
splashProvider.remove()
|
||||
|
||||
Reference in New Issue
Block a user