summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/policy/PhoneWindowManager.java
diff options
context:
space:
mode:
authortiger_huang <tiger_huang@htc.com>2015-07-02 21:52:40 +0800
committerSteve Kondik <steve@cyngn.com>2015-11-07 05:40:42 -0800
commitebeb70d9d62782e82b1183ed2e1aa405da0294d7 (patch)
treeea70c143a511e3aab47f9691608831c6dbc66dba /services/core/java/com/android/server/policy/PhoneWindowManager.java
parenta89ab17abc9cf5de6c8584fa84f4684d6e3b279d (diff)
downloadframeworks_base-ebeb70d9d62782e82b1183ed2e1aa405da0294d7.zip
frameworks_base-ebeb70d9d62782e82b1183ed2e1aa405da0294d7.tar.gz
frameworks_base-ebeb70d9d62782e82b1183ed2e1aa405da0294d7.tar.bz2
Ensure the occlude state of keyguard is correct
If the keyguard is dismissed by an app with FLAG_DISMISS_KEYGUARD, PhoneWindowManager would set keyguard to be occluded. After the user changes to another app without FLAG_DISMISS_KEYGUARD, the occlude state should be cleared, even keyguard is not showing. https://code.google.com/p/android/issues/detail?id=178617 Change-Id: I84fc86ae5c95c122c98445b76495735adbdcaeba
Diffstat (limited to 'services/core/java/com/android/server/policy/PhoneWindowManager.java')
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java24
1 files changed, 13 insertions, 11 deletions
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index cbd821f..bf1afc1 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -5293,22 +5293,24 @@ public class PhoneWindowManager implements WindowManagerPolicy {
*/
private boolean setKeyguardOccludedLw(boolean isOccluded) {
boolean wasOccluded = mKeyguardOccluded;
- boolean showing = mKeyguardDelegate.isShowing();
- if (wasOccluded && !isOccluded && showing) {
+ if (wasOccluded && !isOccluded) {
mKeyguardOccluded = false;
mKeyguardDelegate.setOccluded(false);
- mStatusBar.getAttrs().privateFlags |= PRIVATE_FLAG_KEYGUARD;
- mStatusBar.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
- return true;
- } else if (!wasOccluded && isOccluded && showing) {
+ if (mKeyguardDelegate.isShowing()) {
+ mStatusBar.getAttrs().privateFlags |= PRIVATE_FLAG_KEYGUARD;
+ mStatusBar.getAttrs().flags |= FLAG_SHOW_WALLPAPER;
+ return true;
+ }
+ } else if (!wasOccluded && isOccluded) {
mKeyguardOccluded = true;
mKeyguardDelegate.setOccluded(true);
- mStatusBar.getAttrs().privateFlags &= ~PRIVATE_FLAG_KEYGUARD;
- mStatusBar.getAttrs().flags &= ~FLAG_SHOW_WALLPAPER;
- return true;
- } else {
- return false;
+ if (mKeyguardDelegate.isShowing()) {
+ mStatusBar.getAttrs().privateFlags &= ~PRIVATE_FLAG_KEYGUARD;
+ mStatusBar.getAttrs().flags &= ~FLAG_SHOW_WALLPAPER;
+ return true;
+ }
}
+ return false;
}
private boolean isStatusBarKeyguard() {