Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10c3c142 authored by Josh Tsuji's avatar Josh Tsuji Committed by Automerger Merge Worker
Browse files

Merge "Don't return true for controlling screen off once we've already...

Merge "Don't return true for controlling screen off once we've already returned false for this sleep." into sc-dev am: 703c8d30

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15161982

Change-Id: I05cc3f416cb9c363c306e9a73d4aceb381e0e1e3
parents 4abfcc25 703c8d30
Loading
Loading
Loading
Loading
+25 −1
Original line number Diff line number Diff line
@@ -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
@@ -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)
    }
@@ -148,6 +161,8 @@ class UnlockedScreenOffAnimationController @Inject constructor(

    override fun onStartedGoingToSleep() {
        if (dozeParameters.get().shouldControlUnlockedScreenOff()) {
            decidedToAnimateGoingToSleep = true

            lightRevealAnimationPlaying = true
            lightRevealAnimator.start()

@@ -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
        }
    }

@@ -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
        }
@@ -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
        }