Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt +25 −1 Original line number Diff line number Diff line Loading @@ -56,6 +56,13 @@ class UnlockedScreenOffAnimationController @Inject constructor( private var lightRevealAnimationPlaying = false private var aodUiAnimationPlaying = false /** * The result of our decision whether to play the screen off animation in * [onStartedGoingToSleep], or null if we haven't made that decision yet or aren't going to * sleep. */ private var decidedToAnimateGoingToSleep: Boolean? = null private val lightRevealAnimator = ValueAnimator.ofFloat(1f, 0f).apply { duration = LIGHT_REVEAL_ANIMATION_DURATION interpolator = Interpolators.LINEAR Loading Loading @@ -120,11 +127,17 @@ class UnlockedScreenOffAnimationController @Inject constructor( // Run the callback given to us by the KeyguardVisibilityHelper. after.run() // Done going to sleep, reset this flag. decidedToAnimateGoingToSleep = null } .start() } override fun onStartedWakingUp() { // Waking up, so reset this flag. decidedToAnimateGoingToSleep = null lightRevealAnimator.cancel() handler.removeCallbacksAndMessages(null) } Loading @@ -148,6 +161,8 @@ class UnlockedScreenOffAnimationController @Inject constructor( override fun onStartedGoingToSleep() { if (dozeParameters.get().shouldControlUnlockedScreenOff()) { decidedToAnimateGoingToSleep = true lightRevealAnimationPlaying = true lightRevealAnimator.start() Loading @@ -157,6 +172,8 @@ class UnlockedScreenOffAnimationController @Inject constructor( // Show AOD. That'll cause the KeyguardVisibilityHelper to call #animateInKeyguard. statusBar.notificationPanelViewController.showAodUi() }, ANIMATE_IN_KEYGUARD_DELAY) } else { decidedToAnimateGoingToSleep = false } } Loading @@ -165,6 +182,12 @@ class UnlockedScreenOffAnimationController @Inject constructor( * on the current state of the device. */ fun shouldPlayUnlockedScreenOffAnimation(): Boolean { // If we explicitly already decided not to play the screen off animation, then never change // our mind. if (decidedToAnimateGoingToSleep == false) { return false } if (!dozeParameters.get().canControlUnlockedScreenOff()) { return false } Loading @@ -178,7 +201,8 @@ class UnlockedScreenOffAnimationController @Inject constructor( // already expanded and showing notifications/QS, the animation looks really messy. For now, // disable it if the notification panel is expanded. if (!this::statusBar.isInitialized || statusBar.notificationPanelViewController.isFullyExpanded) { statusBar.notificationPanelViewController.isFullyExpanded || statusBar.notificationPanelViewController.isExpanding) { return false } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockedScreenOffAnimationController.kt +25 −1 Original line number Diff line number Diff line Loading @@ -56,6 +56,13 @@ class UnlockedScreenOffAnimationController @Inject constructor( private var lightRevealAnimationPlaying = false private var aodUiAnimationPlaying = false /** * The result of our decision whether to play the screen off animation in * [onStartedGoingToSleep], or null if we haven't made that decision yet or aren't going to * sleep. */ private var decidedToAnimateGoingToSleep: Boolean? = null private val lightRevealAnimator = ValueAnimator.ofFloat(1f, 0f).apply { duration = LIGHT_REVEAL_ANIMATION_DURATION interpolator = Interpolators.LINEAR Loading Loading @@ -120,11 +127,17 @@ class UnlockedScreenOffAnimationController @Inject constructor( // Run the callback given to us by the KeyguardVisibilityHelper. after.run() // Done going to sleep, reset this flag. decidedToAnimateGoingToSleep = null } .start() } override fun onStartedWakingUp() { // Waking up, so reset this flag. decidedToAnimateGoingToSleep = null lightRevealAnimator.cancel() handler.removeCallbacksAndMessages(null) } Loading @@ -148,6 +161,8 @@ class UnlockedScreenOffAnimationController @Inject constructor( override fun onStartedGoingToSleep() { if (dozeParameters.get().shouldControlUnlockedScreenOff()) { decidedToAnimateGoingToSleep = true lightRevealAnimationPlaying = true lightRevealAnimator.start() Loading @@ -157,6 +172,8 @@ class UnlockedScreenOffAnimationController @Inject constructor( // Show AOD. That'll cause the KeyguardVisibilityHelper to call #animateInKeyguard. statusBar.notificationPanelViewController.showAodUi() }, ANIMATE_IN_KEYGUARD_DELAY) } else { decidedToAnimateGoingToSleep = false } } Loading @@ -165,6 +182,12 @@ class UnlockedScreenOffAnimationController @Inject constructor( * on the current state of the device. */ fun shouldPlayUnlockedScreenOffAnimation(): Boolean { // If we explicitly already decided not to play the screen off animation, then never change // our mind. if (decidedToAnimateGoingToSleep == false) { return false } if (!dozeParameters.get().canControlUnlockedScreenOff()) { return false } Loading @@ -178,7 +201,8 @@ class UnlockedScreenOffAnimationController @Inject constructor( // already expanded and showing notifications/QS, the animation looks really messy. For now, // disable it if the notification panel is expanded. if (!this::statusBar.isInitialized || statusBar.notificationPanelViewController.isFullyExpanded) { statusBar.notificationPanelViewController.isFullyExpanded || statusBar.notificationPanelViewController.isExpanding) { return false } Loading