summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorDanesh M <danesh@cyngn.com>2016-06-03 11:55:04 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-06-03 14:58:59 -0700
commit28e023d0c621f00e357f52264baaedf72c1eeee7 (patch)
treea15741f3db07427542732425ee3f0f149c126e6f /packages
parent981a59d29fe56fe3c8a9ccb04e64284bc6b7ad49 (diff)
downloadframeworks_base-28e023d0c621f00e357f52264baaedf72c1eeee7.zip
frameworks_base-28e023d0c621f00e357f52264baaedf72c1eeee7.tar.gz
frameworks_base-28e023d0c621f00e357f52264baaedf72c1eeee7.tar.bz2
Only show keyguard panel if on lockscreen + no activity on top
There is a bug in window manager, where if the keyboard is collapsed, the reference to the window is lost when destroying its surface. This in turn prevents the ime window from being reordered later on. For normal apps this is not an issue, but since we're above normal apps (KEYGUARD_PANEL), this rises an issue for us in this scenario : 1) Set password lockscreen 2) Swipe up to unlock 3) Collapse keyboard 4) Launch emergency dialer (SHOW_WHEN_LOCKED) 5) Press home button Notice that all touch events are going to the external keyguard. If the keyboard is not collapsed in step 3, everything works and the reason is the reference to the input method window in window manager isn't lost and it gets re-ordered behind the windows. To workaround this issue, avoid removing/re-adding the window and instead rely on window manager to control its visibility. Change-Id: I59dd41547902ae5e23bbeb0a01ee27f11fc29dfc
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java4
2 files changed, 6 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index f299f4d..2076c27 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -4536,6 +4536,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
return mStatusBarKeyguardViewManager != null && mStatusBarKeyguardViewManager.isSecure();
}
+ public boolean isKeyguardInputRestricted() {
+ return mStatusBarKeyguardViewManager != null && mStatusBarKeyguardViewManager.isInputRestricted();
+ }
+
public long calculateGoingToFullShadeDelay() {
return mKeyguardFadingAwayDelay + mKeyguardFadingAwayDuration;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java
index b292441..ccbe911 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java
@@ -102,10 +102,10 @@ public class LiveLockScreenController {
}
}
} else {
- if (isShowingLiveLockScreenView()) {
+ if (isShowingLiveLockScreenView() && !mBar.isKeyguardInputRestricted()) {
mPanelView.removeView(mLiveLockScreenView);
- mLlsHasFocus = false;
}
+ mLlsHasFocus = false;
}
}