diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 9756cadff8cdf..6c1a876610788 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -2281,6 +2281,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; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java index 4bc845eaad87d..0faa12e33cd65 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -1395,6 +1395,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). @@ -1404,6 +1405,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()