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

Commit a00471a7 authored by Josh Tsuji's avatar Josh Tsuji
Browse files

Fix issue where notifications remained hidden on lock screen after two quick power presses.

Tested at ToT and can't reproduce either the missing notifications, or the b/184396499 issue where the shade's notifications would be missing after allowing the phone to timeout and then using fingerprint bypass.

Fixes: 184028145
Bug: 184396499
Test: press power to lock and press it again quickly to cancel
Test: allow screen to timeout, then bypass using fingerprint
Change-Id: I3aa2ac74a1cf90a400cb7240453ee2af0015556e
parent 25ad0530
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -393,6 +393,11 @@ class NotificationWakeUpCoordinator @Inject constructor(
    override fun onDozingChanged(isDozing: Boolean) {
        if (isDozing) {
            setNotificationsVisible(visible = false, animate = false, increaseSpeed = false)
        } else {
            // We only unset the flag once we fully went asleep. If the user interrupts the
            // animation in the middle, we have to abort the animation as well to make sure
            // the notifications are visible again.
            animatingScreenOff = false
        }
    }

+7 −1
Original line number Diff line number Diff line
@@ -3609,10 +3609,16 @@ public class StatusBar extends SystemUI implements DemoMode,

        boolean visibleNotOccluded = mStatusBarKeyguardViewManager.isShowing()
                && !mStatusBarKeyguardViewManager.isOccluded();
        // If we're dozing and we'll be animating the screen off, the keyguard isn't currently
        // visible but will be shortly for the animation, so we should proceed as if it's visible.
        boolean visibleNotOccludedOrWillBe =
                visibleNotOccluded || (mDozing && mDozeParameters.shouldControlUnlockedScreenOff());

        boolean wakeAndUnlock = mBiometricUnlockController.getMode()
                == BiometricUnlockController.MODE_WAKE_AND_UNLOCK;
        boolean animate = (!mDozing && mDozeServiceHost.shouldAnimateWakeup() && !wakeAndUnlock)
                || (mDozing && mDozeServiceHost.shouldAnimateScreenOff() && visibleNotOccluded);
                || (mDozing && mDozeServiceHost.shouldAnimateScreenOff()
                && visibleNotOccludedOrWillBe);

        mNotificationPanelViewController.setDozing(mDozing, animate, mWakeUpTouchLocation);
        updateQsExpansionEnabled();