diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index 0be3d70ed85c1..ca92d3570ff7a 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -1854,6 +1854,8 @@ public class KeyguardViewMediator extends SystemUI { synchronized (KeyguardViewMediator.this) { if (!mHiding) { + // Tell ActivityManager that we canceled the keyguardExitAnimation. + setShowingLocked(mShowing, mAodShowing, mSecondaryDisplayShowing, true /* force */); return; } mHiding = false; diff --git a/services/core/java/com/android/server/am/KeyguardController.java b/services/core/java/com/android/server/am/KeyguardController.java index 1b7f75b2d52cd..57643822b1a43 100644 --- a/services/core/java/com/android/server/am/KeyguardController.java +++ b/services/core/java/com/android/server/am/KeyguardController.java @@ -121,6 +121,8 @@ class KeyguardController { void setKeyguardShown(boolean keyguardShowing, boolean aodShowing, int secondaryDisplayShowing) { boolean showingChanged = keyguardShowing != mKeyguardShowing || aodShowing != mAodShowing; + // If keyguard is going away, but SystemUI aborted the transition, need to reset state. + showingChanged |= mKeyguardGoingAway && keyguardShowing; if (!showingChanged && secondaryDisplayShowing == mSecondaryDisplayShowing) { return; }