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 116fec208b06bf3a5d8c23ea65831c175015cd90)
This commit is contained in:
parent
bd4a0e0a73
commit
8f0eeb6c9c
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user