Set window visibility when user switch is triggered
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
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:6ee82749b8a7992cc0f02271eb3c46f13d1506a6)
Merged-In: I6c2f68b25e2c3f2040a59bc77e4de404da45c0d2
Change-Id: I6c2f68b25e2c3f2040a59bc77e4de404da45c0d2
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index b08c2dc..c653dec 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 @@
// 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;