summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jorim Jaggi <jjaggi@google.com> 2016-11-15 15:24:26 -0800
committer Jorim Jaggi <jjaggi@google.com> 2016-11-15 15:24:26 -0800
commitbb336699bd7127742d43db4e2bed9c60220d0620 (patch)
treed5bb26ec4f787c797e5a29ba78cbbddd2040fcce
parentaf221d16de434c3550cb4e645135e95992ce1203 (diff)
Fix Keyboard flicker
Bouncer should not be focusable if we are on Keyguard and not occluded, and we don't need the IME. Otherwise, we'd see a flicker of the IME animating out when the bouncer comes up on pattern/PIN screens. Test: Set pattern, open app with IME open, lock screen, dismiss Keyguard. Test: Set password, dismiss Keyguard. Bug: 32894573 Change-Id: I25da76b66b1cd5722d5929bb2d2658282faef517
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
index 4a2d5dcda967..ff00c6293baf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java
@@ -137,7 +137,8 @@ public class StatusBarWindowManager implements RemoteInputController.Callback {
private void applyFocusableFlag(State state) {
boolean panelFocusable = state.statusBarFocusable && state.panelExpanded;
- if (state.bouncerShowing || BaseStatusBar.ENABLE_REMOTE_INPUT && state.remoteInputActive) {
+ if (state.bouncerShowing && (state.keyguardOccluded || state.keyguardNeedsInput)
+ || BaseStatusBar.ENABLE_REMOTE_INPUT && state.remoteInputActive) {
mLpChanged.flags &= ~WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
mLpChanged.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
} else if (state.isKeyguardShowingAndNotOccluded() || panelFocusable) {