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

Commit 09114c3e authored by Josh Tsuji's avatar Josh Tsuji
Browse files

Fix issues with unlocking during a swipe on the lockscreen.

This could cause keyguard to remain visible if a biometric
auth event arrived while swiping on the lockscreen.

Fixes: 265661878
Test: while a bouncer swipe is in progress, finger/face auth
Test: while swiping away an unlocked lockscreen, fingerprint auth
Change-Id: Ia06f48f092414360c3c9d3cb16cb8fb42591f5b8
parent 76c74ee9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2287,6 +2287,10 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
        }
        if (!mKeyguardDonePending && mHideAnimationRun && !mHideAnimationRunning) {
            handleKeyguardDone();
        } else if (mSurfaceBehindRemoteAnimationRunning) {
            // We're already running the keyguard exit animation, likely due to an in-progress swipe
            // to unlock.
           exitKeyguardAndFinishSurfaceBehindRemoteAnimation(false /* cancelled */);
        } else if (!mHideAnimationRun) {
            if (DEBUG) Log.d(TAG, "tryKeyguardDone: starting pre-hide animation");
            mHideAnimationRun = true;
+2 −0
Original line number Diff line number Diff line
@@ -1414,6 +1414,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        // Things that mean we're not swiping to dismiss the keyguard, and should ignore this
        // expansion:
        // - Keyguard isn't even visible.
        // - We're swiping on the bouncer, not the lockscreen.
        // - 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).
@@ -1423,6 +1424,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
        // - QS is expanded and we're swiping - swiping up now will hide QS, not dismiss the
        //   keyguard.
        if (!isKeyguardShowing()
                || mStatusBarKeyguardViewManager.primaryBouncerIsOrWillBeShowing()
                || isOccluded()
                || !mKeyguardStateController.canDismissLockScreen()
                || mKeyguardViewMediator.isAnySimPinSecure()