diff options
6 files changed, 13 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java index a46d7197100f..b1f526600929 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java @@ -155,9 +155,12 @@ public abstract class InputMethodManagerInternal { /** * Updates the IME visibility, back disposition and show IME picker status for SystemUI. * TODO(b/189923292): Making SystemUI to be true IME icon controller vs. presenter that - * controlled by IMMS. + * controlled by IMMS. + * + * @param disableImeIcon indicates whether IME icon should be enabled or not + * @param displayId the display for which to update the IME window status */ - public abstract void updateImeWindowStatus(boolean disableImeIcon); + public abstract void updateImeWindowStatus(boolean disableImeIcon, int displayId); /** * Finish stylus handwriting by calling {@link InputMethodService#finishStylusHandwriting()} if @@ -264,7 +267,7 @@ public abstract class InputMethodManagerInternal { } @Override - public void updateImeWindowStatus(boolean disableImeIcon) { + public void updateImeWindowStatus(boolean disableImeIcon, int displayId) { } @Override diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 6cc069377bf2..d99d0e84b445 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -5709,7 +5709,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub } @Override - public void updateImeWindowStatus(boolean disableImeIcon) { + public void updateImeWindowStatus(boolean disableImeIcon, int displayId) { mHandler.obtainMessage(MSG_UPDATE_IME_WINDOW_STATUS, disableImeIcon ? 1 : 0, 0) .sendToTarget(); } diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java index c8fd16dbd5dc..f1b56eea94fd 100644 --- a/services/core/java/com/android/server/wm/InputMonitor.java +++ b/services/core/java/com/android/server/wm/InputMonitor.java @@ -455,7 +455,7 @@ final class InputMonitor { // in animating before the next app window focused, or IME icon // persists on the bottom when swiping the task to recents. InputMethodManagerInternal.get().updateImeWindowStatus( - true /* disableImeIcon */); + true /* disableImeIcon */, mDisplayContent.getDisplayId()); } } return; diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java index ccaa3b07aaaa..cbc7b836d250 100644 --- a/services/core/java/com/android/server/wm/KeyguardController.java +++ b/services/core/java/com/android/server/wm/KeyguardController.java @@ -240,7 +240,8 @@ class KeyguardController { // state when evaluating visibilities. updateKeyguardSleepToken(); mRootWindowContainer.ensureActivitiesVisible(null, 0, !PRESERVE_WINDOWS); - InputMethodManagerInternal.get().updateImeWindowStatus(false /* disableImeIcon */); + InputMethodManagerInternal.get().updateImeWindowStatus(false /* disableImeIcon */, + displayId); setWakeTransitionReady(); if (aodChanged) { // Ensure the new state takes effect. diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java index ef2572665281..dd538deee5cd 100644 --- a/services/core/java/com/android/server/wm/RecentsAnimationController.java +++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java @@ -967,7 +967,8 @@ public class RecentsAnimationController implements DeathRecipient { // Restore IME icon only when moving the original app task to front from recents, in case // IME icon may missing if the moving task has already been the current focused task. if (reorderMode == REORDER_MOVE_TO_ORIGINAL_POSITION && !mIsAddingTaskToTargets) { - InputMethodManagerInternal.get().updateImeWindowStatus(false /* disableImeIcon */); + InputMethodManagerInternal.get().updateImeWindowStatus( + false /* disableImeIcon */, mDisplayId); } // Update the input windows after the animation is complete diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java index f70094450abb..49b3e4ac33c9 100644 --- a/services/core/java/com/android/server/wm/Transition.java +++ b/services/core/java/com/android/server/wm/Transition.java @@ -1389,7 +1389,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { // recents, in case IME icon may missing if the moving task has already been // the current focused task. InputMethodManagerInternal.get().updateImeWindowStatus( - false /* disableImeIcon */); + false /* disableImeIcon */, dc.getDisplayId()); } // An uncommitted transient launch can leave incomplete lifecycles if visibilities // didn't change (eg. re-ordering with translucent tasks will leave launcher |