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

Commit 432e0353 authored by Josh Tsuji's avatar Josh Tsuji
Browse files

Fix issue where cold-start launching an activity from the shade while an...

Fix issue where cold-start launching an activity from the shade while an occluding activity is visible would result in an inescapable black screen.

Fixes: 227341125
Test: use Notify.apk (go/notify-apk) to post a notification that'll launch an activity, then force close Notify, open a Meet call (or other SHOW_WHEN_LOCKED activity), lock the phone, press the power button, pull down the shade, tap the Notify notification, UDFPS, note no inescapable black screen
Change-Id: I57c57cbb156dae79fa46e917285330f07ff7edce
parent e8c5e4ad
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1388,8 +1388,11 @@ public class CentralSurfaces extends CoreStartable implements
     * keyguard.
     */
    private void dispatchPanelExpansionForKeyguardDismiss(float fraction, boolean trackingTouch) {
        // Things that mean we're not dismissing the keyguard, and should ignore this expansion:
        // Things that mean we're not swiping to dismiss the keyguard, and should ignore this
        // expansion:
        // - Keyguard isn't even visible.
        // - Keyguard is occluded. Expansion changes here are the shade being expanded over the
        //   occluding activity.
        // - Keyguard is visible, but can't be dismissed (swiping up will show PIN/password prompt).
        // - The SIM is locked, you can't swipe to unlock. If the SIM is locked but there is no
        //   device lock set, canDismissLockScreen returns true even though you should not be able
@@ -1397,6 +1400,7 @@ public class CentralSurfaces extends CoreStartable implements
        // - QS is expanded and we're swiping - swiping up now will hide QS, not dismiss the
        //   keyguard.
        if (!isKeyguardShowing()
                || isOccluded()
                || !mKeyguardStateController.canDismissLockScreen()
                || mKeyguardViewMediator.isAnySimPinSecure()
                || (mNotificationPanelViewController.isQsExpanded() && trackingTouch)) {