Avoid sending an IME close request if the IME is already closed.

Bug: 277738379
Fix: 296986528
Flag: N/A
Test: manual
Change-Id: I0a3419f17ee569020c9de673b9507337661bd002
This commit is contained in:
Luca Zuccarini
2023-08-22 16:42:56 +00:00
parent a8a71f36f5
commit 8837e66a7e
@@ -273,13 +273,19 @@ public interface ActivityContext {
final WindowInsetsController wic = root.getWindowInsetsController();
WindowInsets insets = root.getRootWindowInsets();
boolean isImeShown = insets != null && insets.isVisible(WindowInsets.Type.ime());
if (wic != null && isImeShown) {
StatsLogManager slm = getStatsLogManager();
slm.keyboardStateManager().setKeyboardState(HIDE);
if (wic != null) {
// Only hide the keyboard if it is actually showing.
if (isImeShown) {
StatsLogManager slm = getStatsLogManager();
slm.keyboardStateManager().setKeyboardState(HIDE);
// this method cannot be called cross threads
wic.hide(WindowInsets.Type.ime());
slm.logger().log(LAUNCHER_ALLAPPS_KEYBOARD_CLOSED);
// this method cannot be called cross threads
wic.hide(WindowInsets.Type.ime());
slm.logger().log(LAUNCHER_ALLAPPS_KEYBOARD_CLOSED);
}
// If the WindowInsetsController is not null, we end here regardless of whether we
// hid the keyboard or not.
return;
}
}