From fc0cdd85265a1a2c1466502172c8db3a05eee517 Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Fri, 3 Jul 2020 10:54:40 +0800 Subject: Do not count AOD showing changes as keyguard's AOD status changed after keyguard was set as going away, which reset mKeyguardGoingAway back to false and put activities to sleep. Bug: 158640144 Test: Unlock keyguard during AOD2 Change-Id: I9335045668f90d477d19dada0185447bfa3cb2a7 --- services/core/java/com/android/server/wm/KeyguardController.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java index 4c10d5819c10..9c535e4a41d7 100644 --- a/services/core/java/com/android/server/wm/KeyguardController.java +++ b/services/core/java/com/android/server/wm/KeyguardController.java @@ -133,10 +133,11 @@ class KeyguardController { * Update the Keyguard showing state. */ void setKeyguardShown(boolean keyguardShowing, boolean aodShowing) { - // If keyguard is going away, but SystemUI aborted the transition, need to reset state. - final boolean keyguardChanged = keyguardShowing != mKeyguardShowing - || mKeyguardGoingAway && keyguardShowing; final boolean aodChanged = aodShowing != mAodShowing; + // If keyguard is going away, but SystemUI aborted the transition, need to reset state. + // Do not reset keyguardChanged status if this is aodChanged. + final boolean keyguardChanged = (keyguardShowing != mKeyguardShowing) + || (mKeyguardGoingAway && keyguardShowing && !aodChanged); if (!keyguardChanged && !aodChanged) { return; } -- cgit v1.2.3-59-g8ed1b