summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Felix Stern <fstern@google.com> 2024-12-10 14:19:27 +0000
committer Felix Stern <fstern@google.com> 2024-12-10 14:19:27 +0000
commit6ee82749b8a7992cc0f02271eb3c46f13d1506a6 (patch)
treecb9c23fc8622a9e8c5279793edc0bad711d67af9
parent060674a4cb8e164d40f66af558195f4a06de89d1 (diff)
Set window visibility when user switch is triggered
Change-Id: I6c2f68b25e2c3f2040a59bc77e4de404da45c0d2 Test: open work profile chat with IME; go to Launcher and receive chat message; click on notification Fix: 379482310 Flag: android.view.inputmethod.refactor_insets_controller
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerService.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index 02dd884ad60d..68001428e567 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -1209,8 +1209,14 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
// Hide soft input before user switch task since switch task may block main handler a while
// and delayed the hideCurrentInputLocked().
final var userData = getUserData(userId);
- hideCurrentInputLocked(userData.mImeBindingState.mFocusedWindow, 0 /* flags */,
- SoftInputShowHideReason.HIDE_SWITCH_USER, userId);
+ if (Flags.refactorInsetsController()) {
+ final var statsToken = createStatsTokenForFocusedClient(false /* show */,
+ SoftInputShowHideReason.HIDE_SWITCH_USER, userId);
+ setImeVisibilityOnFocusedWindowClient(false, userData, statsToken);
+ } else {
+ hideCurrentInputLocked(userData.mImeBindingState.mFocusedWindow, 0 /* flags */,
+ SoftInputShowHideReason.HIDE_SWITCH_USER, userId);
+ }
final UserSwitchHandlerTask task = new UserSwitchHandlerTask(this, userId,
clientToBeReset);
mUserSwitchHandlerTask = task;