Prevent windows below the keyguard from showing
Fixes a bug where windows below the lock screen
could become visible if a SHOW_WHEN_LOCKED activity
hides the status bar.
Bug: 21450145
Change-Id: Ie660394cb96d7e6839bd4fb7c2729133bac2dfc5
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index b8d0692..2839f08 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -2116,7 +2116,9 @@
case TYPE_KEYGUARD_SCRIM:
return false;
default:
- return true;
+ // Hide only windows below the keyguard host window.
+ return windowTypeToLayerLw(win.getBaseType())
+ < windowTypeToLayerLw(TYPE_STATUS_BAR);
}
}
@@ -5517,6 +5519,12 @@
/** {@inheritDoc} */
@Override
+ public boolean isKeyguardShowingOrOccluded() {
+ return mKeyguardDelegate == null ? false : mKeyguardDelegate.isShowing();
+ }
+
+ /** {@inheritDoc} */
+ @Override
public boolean inKeyguardRestrictedKeyInputMode() {
if (mKeyguardDelegate == null) return false;
return mKeyguardDelegate.isInputRestricted();