Loading services/core/java/com/android/server/wm/DisplayContent.java +2 −2 Original line number Diff line number Diff line Loading @@ -4407,8 +4407,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp boolean imeLayeringTargetMayUseIme = LayoutParams.mayUseInputMethod(mImeLayeringTarget.mAttrs.flags) || mImeLayeringTarget.mAttrs.type == TYPE_APPLICATION_STARTING; if (imeLayeringTargetMayUseIme && mImeInputTarget != null && mImeLayeringTarget.mActivityRecord != mImeInputTarget.getActivityRecord()) { if (imeLayeringTargetMayUseIme && (mImeInputTarget == null || mImeLayeringTarget.mActivityRecord != mImeInputTarget.getActivityRecord())) { // Do not change parent if the window hasn't requested IME. return null; } Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +3 −0 Original line number Diff line number Diff line Loading @@ -643,6 +643,7 @@ public class DisplayContentTests extends WindowTestsBase { final DisplayContent dc = mDisplayContent; final WindowState ws = createWindow(null, TYPE_APPLICATION, dc, "app window"); dc.setImeLayeringTarget(ws); dc.setImeInputTarget(ws); // Adjust bounds so that matchesRootDisplayAreaBounds() returns false. final Rect bounds = new Rect(dc.getBounds()); Loading Loading @@ -1154,6 +1155,7 @@ public class DisplayContentTests extends WindowTestsBase { dc.setImeLayeringTarget(createWindow(null, TYPE_STATUS_BAR, "app")); dc.getImeTarget(IME_TARGET_LAYERING).getWindow().setWindowingMode( WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW); dc.setImeInputTarget(dc.getImeTarget(IME_TARGET_LAYERING).getWindow()); assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent()); } Loading @@ -1172,6 +1174,7 @@ public class DisplayContentTests extends WindowTestsBase { public void testComputeImeParent_noApp() throws Exception { final DisplayContent dc = createNewDisplay(); dc.setImeLayeringTarget(createWindow(null, TYPE_STATUS_BAR, "statusBar")); dc.setImeInputTarget(dc.getImeTarget(IME_TARGET_LAYERING).getWindow()); assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent()); } Loading tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeEditorPopupDialogTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ class CloseImeEditorPopupDialogTest(private val testSpec: FlickerTestParameter) } transitions { imeTestApp.dismissDialog(wmHelper) instrumentation.uiAutomation.syncInputTransactions() wmHelper.waitImeGone() } teardown { eachRun { Loading Loading @@ -91,7 +91,7 @@ class CloseImeEditorPopupDialogTest(private val testSpec: FlickerTestParameter) .then() .isVisible(FlickerComponentName.IME_SNAPSHOT) .then() .isInvisible(FlickerComponentName.IME_SNAPSHOT) .isInvisible(FlickerComponentName.IME_SNAPSHOT, isOptional = true) .isInvisible(FlickerComponentName.IME) } } Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +2 −2 Original line number Diff line number Diff line Loading @@ -4407,8 +4407,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp boolean imeLayeringTargetMayUseIme = LayoutParams.mayUseInputMethod(mImeLayeringTarget.mAttrs.flags) || mImeLayeringTarget.mAttrs.type == TYPE_APPLICATION_STARTING; if (imeLayeringTargetMayUseIme && mImeInputTarget != null && mImeLayeringTarget.mActivityRecord != mImeInputTarget.getActivityRecord()) { if (imeLayeringTargetMayUseIme && (mImeInputTarget == null || mImeLayeringTarget.mActivityRecord != mImeInputTarget.getActivityRecord())) { // Do not change parent if the window hasn't requested IME. return null; } Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +3 −0 Original line number Diff line number Diff line Loading @@ -643,6 +643,7 @@ public class DisplayContentTests extends WindowTestsBase { final DisplayContent dc = mDisplayContent; final WindowState ws = createWindow(null, TYPE_APPLICATION, dc, "app window"); dc.setImeLayeringTarget(ws); dc.setImeInputTarget(ws); // Adjust bounds so that matchesRootDisplayAreaBounds() returns false. final Rect bounds = new Rect(dc.getBounds()); Loading Loading @@ -1154,6 +1155,7 @@ public class DisplayContentTests extends WindowTestsBase { dc.setImeLayeringTarget(createWindow(null, TYPE_STATUS_BAR, "app")); dc.getImeTarget(IME_TARGET_LAYERING).getWindow().setWindowingMode( WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW); dc.setImeInputTarget(dc.getImeTarget(IME_TARGET_LAYERING).getWindow()); assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent()); } Loading @@ -1172,6 +1174,7 @@ public class DisplayContentTests extends WindowTestsBase { public void testComputeImeParent_noApp() throws Exception { final DisplayContent dc = createNewDisplay(); dc.setImeLayeringTarget(createWindow(null, TYPE_STATUS_BAR, "statusBar")); dc.setImeInputTarget(dc.getImeTarget(IME_TARGET_LAYERING).getWindow()); assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent()); } Loading
tests/FlickerTests/src/com/android/server/wm/flicker/ime/CloseImeEditorPopupDialogTest.kt +2 −2 Original line number Diff line number Diff line Loading @@ -59,7 +59,7 @@ class CloseImeEditorPopupDialogTest(private val testSpec: FlickerTestParameter) } transitions { imeTestApp.dismissDialog(wmHelper) instrumentation.uiAutomation.syncInputTransactions() wmHelper.waitImeGone() } teardown { eachRun { Loading Loading @@ -91,7 +91,7 @@ class CloseImeEditorPopupDialogTest(private val testSpec: FlickerTestParameter) .then() .isVisible(FlickerComponentName.IME_SNAPSHOT) .then() .isInvisible(FlickerComponentName.IME_SNAPSHOT) .isInvisible(FlickerComponentName.IME_SNAPSHOT, isOptional = true) .isInvisible(FlickerComponentName.IME) } } Loading