diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index a120e17f1126c..7ed8169d4e185 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -2275,6 +2275,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 e630271a8591a..131309f8508f8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java @@ -1397,6 +1397,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). @@ -1406,6 +1407,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()