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
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 4a2d5dc..ff00c62 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 @@
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) {