summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yabin Huang <yabinh@google.com> 2023-10-18 17:42:03 -0700
committer Yabin Huang <yabinh@google.com> 2023-12-06 18:18:35 +0000
commit1eb9baa4c7c4f54b9aa9f13abf7445a36430fe0e (patch)
treed1101a891f5c327bf264a4089d1deee73b71cf42
parentace8b54a3834435ddb0e69710c0f7210985d9ef6 (diff)
Update IMMI#updateImeWindowStatus() to take display ID
To support multi-session IME, IMMI needs to know the window ID of the IME. So this CL gets the window ID from the DisplayContent, and passes it to IMMI. This CL just passes an unused parameter to IMMS. It doesn't change the behavior of the code, thus no flag is required. The passed parameter will be used by another CL to implement the multi-session IME, and that CL will be protected by the concurrent_input_methods feature flag. Bug: 305829876 Test: atest WmTests && atest FrameworksServicesTests Change-Id: Ie8a0315f4ecb421916ea4b68427acd1e7e5ff280
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerInternal.java9
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerService.java2
-rw-r--r--services/core/java/com/android/server/wm/InputMonitor.java2
-rw-r--r--services/core/java/com/android/server/wm/KeyguardController.java3
-rw-r--r--services/core/java/com/android/server/wm/RecentsAnimationController.java3
-rw-r--r--services/core/java/com/android/server/wm/Transition.java2
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