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) {