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
This commit is contained in:
Jorim Jaggi
2016-11-15 15:24:26 -08:00
parent af221d16de
commit bb336699bd

View File

@@ -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) {