Merge "Avoid IMS uses overridden configuration" into main
diff --git a/core/java/android/window/WindowTokenClient.java b/core/java/android/window/WindowTokenClient.java
index 7f5331b..4a3aba1 100644
--- a/core/java/android/window/WindowTokenClient.java
+++ b/core/java/android/window/WindowTokenClient.java
@@ -165,7 +165,8 @@
Log.d(TAG, "Configuration not dispatch to IME because configuration is up"
+ " to date. Current config=" + context.getResources().getConfiguration()
+ ", reported config=" + currentConfig
- + ", updated config=" + newConfig);
+ + ", updated config=" + newConfig
+ + ", updated display ID=" + newDisplayId);
}
// Update display first. In case callers want to obtain display information(
// ex: DisplayMetrics) in #onConfigurationChanged callback.
@@ -190,13 +191,18 @@
if (mShouldDumpConfigForIme) {
if (!shouldReportConfigChange) {
Log.d(TAG, "Only apply configuration update to Resources because "
- + "shouldReportConfigChange is false.\n" + Debug.getCallers(5));
+ + "shouldReportConfigChange is false. "
+ + "context=" + context
+ + ", config=" + context.getResources().getConfiguration()
+ + ", display ID=" + context.getDisplayId() + "\n"
+ + Debug.getCallers(5));
} else if (diff == 0) {
Log.d(TAG, "Configuration not dispatch to IME because configuration has no "
+ " public difference with updated config. "
+ " Current config=" + context.getResources().getConfiguration()
+ ", reported config=" + currentConfig
- + ", updated config=" + newConfig);
+ + ", updated config=" + newConfig
+ + ", display ID=" + context.getDisplayId());
}
}
}
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 060f1c8..6af496f 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -5682,29 +5682,6 @@
throw e;
}
- /**
- * Sets the corresponding {@link DisplayArea} information for the process global
- * configuration. To be called when we need to show IME on a different {@link DisplayArea}
- * or display.
- *
- * @param pid The process id associated with the IME window.
- * @param imeContainer The DisplayArea that contains the IME window.
- */
- void onImeWindowSetOnDisplayArea(final int pid, @NonNull final DisplayArea imeContainer) {
- if (pid == MY_PID || pid < 0) {
- ProtoLog.w(WM_DEBUG_CONFIGURATION,
- "Trying to update display configuration for system/invalid process.");
- return;
- }
- final WindowProcessController process = mProcessMap.getProcess(pid);
- if (process == null) {
- ProtoLog.w(WM_DEBUG_CONFIGURATION, "Trying to update display "
- + "configuration for invalid process, pid=%d", pid);
- return;
- }
- process.registerDisplayAreaConfigurationListener(imeContainer);
- }
-
@Override
public void setRunningRemoteTransitionDelegate(IApplicationThread delegate) {
final TransitionController controller = getTransitionController();
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index eb1f052..46d4ce4 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -4171,11 +4171,6 @@
*/
void setInputMethodWindowLocked(WindowState win) {
mInputMethodWindow = win;
- // Update display configuration for IME process.
- if (mInputMethodWindow != null) {
- final int imePid = mInputMethodWindow.mSession.mPid;
- mAtmService.onImeWindowSetOnDisplayArea(imePid, mImeWindowsContainer);
- }
mInsetsStateController.getImeSourceProvider().setWindowContainer(win,
mDisplayPolicy.getImeSourceFrameProvider(), null);
computeImeTarget(true /* updateImeTarget */);
diff --git a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
index 4e360d0..2c88ed2 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java
@@ -1068,16 +1068,6 @@
mDisplayContent.getImeTarget(IME_TARGET_LAYERING));
}
- @SetupWindows(addWindows = W_INPUT_METHOD)
- @Test
- public void testInputMethodSet_listenOnDisplayAreaConfigurationChanged() {
- spyOn(mAtm);
- mDisplayContent.setInputMethodWindowLocked(mImeWindow);
-
- verify(mAtm).onImeWindowSetOnDisplayArea(
- mImeWindow.mSession.mPid, mDisplayContent.getImeContainer());
- }
-
@Test
public void testAllowsTopmostFullscreenOrientation() {
final DisplayContent dc = createNewDisplay();