Merge "Enable IME on Keyguard Password security challenge" into rvc-dev am: 965b250bc1

Change-Id: Iff3d814b9f1183d73ff2744f981d2c2199835ed9
This commit is contained in:
Youngjun Kwak
2020-04-21 17:24:46 +00:00
committed by Automerger Merge Worker
3 changed files with 21 additions and 1 deletions

View File

@@ -205,6 +205,9 @@ public class CarKeyguardViewController extends OverlayViewController implements
@Override
public void onCancelClicked() {
getOverlayViewGlobalStateController().setWindowFocusable(/* focusable= */ false);
getOverlayViewGlobalStateController().setWindowNeedsInput(/* needsInput= */ false);
mBouncer.hide(/* destroyView= */ true);
mKeyguardCancelClickedListener.onCancelClicked();
}
@@ -226,7 +229,8 @@ public class CarKeyguardViewController extends OverlayViewController implements
@Override
public void setNeedsInput(boolean needsInput) {
getLayout().setFocusable(needsInput);
getOverlayViewGlobalStateController().setWindowFocusable(needsInput);
getOverlayViewGlobalStateController().setWindowNeedsInput(needsInput);
}
/**

View File

@@ -123,6 +123,12 @@ public class OverlayViewGlobalStateController {
mSystemUIOverlayWindowController.setWindowFocusable(focusable);
}
/** Sets the {@link android.view.WindowManager.LayoutParams#FLAG_ALT_FOCUSABLE_IM} flag of the
* sysui overlay window */
public void setWindowNeedsInput(boolean needsInput) {
mSystemUIOverlayWindowController.setWindowNeedsInput(needsInput);
}
/** Returns {@code true} if the window is focusable. */
public boolean isWindowFocusable() {
return mSystemUIOverlayWindowController.isWindowFocusable();

View File

@@ -132,6 +132,16 @@ public class SystemUIOverlayWindowController implements
updateWindow();
}
/** Sets the window to enable IME. */
public void setWindowNeedsInput(boolean needsInput) {
if (needsInput) {
mLpChanged.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
} else {
mLpChanged.flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
}
updateWindow();
}
/** Returns {@code true} if the window is visible */
public boolean isWindowVisible() {
return mVisible;