Dismiss insecure keyguards if FLAG_SHOW_WHEN_LOCKED
Windows that had FLAG_SHOW_WHEN_LOCKED and FLAG_DISMISS_KEYGUARD set
would ignore the FLAG_DISMISS_KEYGUARD if the lockscreen was
insecure. This change adds a test for insecure keyguards when the
two flags are set together.
Fixes bug 18563298.
Change-Id: I3027c7ec476d3ac15978f7e6a78b3c2050cbab02
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 1271737..ca0d481 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -4054,10 +4054,14 @@
// Remove any previous windows with the same appToken.
mAppsToBeHidden.remove(appToken);
mAppsThatDismissKeyguard.remove(appToken);
- if (mAppsToBeHidden.isEmpty() && mKeyguardSecureIncludingHidden) {
- mWinShowWhenLocked = win;
- mHideLockScreen = true;
- mForceStatusBarFromKeyguard = false;
+ if (mAppsToBeHidden.isEmpty()) {
+ if (mKeyguardSecureIncludingHidden) {
+ mWinShowWhenLocked = win;
+ mHideLockScreen = true;
+ mForceStatusBarFromKeyguard = false;
+ } else if (dismissKeyguard && !mKeyguardSecure) {
+ mAppsThatDismissKeyguard.add(appToken);
+ }
}
} else if (dismissKeyguard) {
if (mKeyguardSecure) {