Loading services/core/java/com/android/server/wm/DisplayContent.java +4 −0 Original line number Diff line number Diff line Loading @@ -4010,6 +4010,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp // screen. If it's not covering the entire screen the IME might extend beyond the apps // bounds. if (allowAttachToApp && shouldImeAttachedToApp()) { if (mImeLayeringTarget.mActivityRecord != mImeInputTarget.mActivityRecord) { // Do not change parent if the window hasn't requested IME. return null; } return mImeLayeringTarget.mActivityRecord.getSurfaceControl(); } Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +16 −0 Original line number Diff line number Diff line Loading @@ -358,6 +358,22 @@ public class DisplayContentTests extends WindowTestsBase { verify(imeContainer).assignRelativeLayer(any(), eq(imeSurfaceParent), anyInt(), eq(true)); } @Test public void testComputeImeTargetReturnsNull_windowDidntRequestIme() { final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, new ActivityBuilder(mAtm).setCreateTask(true).build(), "app"); final WindowState win2 = createWindow(null, TYPE_BASE_APPLICATION, new ActivityBuilder(mAtm).setCreateTask(true).build(), "app2"); mDisplayContent.setImeInputTarget(win1); mDisplayContent.setImeLayeringTarget(win2); doReturn(true).when(mDisplayContent).shouldImeAttachedToApp(); // Compute IME parent returns nothing if current target and window receiving input // are different i.e. if current window didn't request IME. assertNull("computeImeParent() should be null", mDisplayContent.computeImeParent()); } /** * This tests root task movement between displays and proper root task's, task's and app token's * display container references updates. Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +4 −0 Original line number Diff line number Diff line Loading @@ -4010,6 +4010,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp // screen. If it's not covering the entire screen the IME might extend beyond the apps // bounds. if (allowAttachToApp && shouldImeAttachedToApp()) { if (mImeLayeringTarget.mActivityRecord != mImeInputTarget.mActivityRecord) { // Do not change parent if the window hasn't requested IME. return null; } return mImeLayeringTarget.mActivityRecord.getSurfaceControl(); } Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +16 −0 Original line number Diff line number Diff line Loading @@ -358,6 +358,22 @@ public class DisplayContentTests extends WindowTestsBase { verify(imeContainer).assignRelativeLayer(any(), eq(imeSurfaceParent), anyInt(), eq(true)); } @Test public void testComputeImeTargetReturnsNull_windowDidntRequestIme() { final WindowState win1 = createWindow(null, TYPE_BASE_APPLICATION, new ActivityBuilder(mAtm).setCreateTask(true).build(), "app"); final WindowState win2 = createWindow(null, TYPE_BASE_APPLICATION, new ActivityBuilder(mAtm).setCreateTask(true).build(), "app2"); mDisplayContent.setImeInputTarget(win1); mDisplayContent.setImeLayeringTarget(win2); doReturn(true).when(mDisplayContent).shouldImeAttachedToApp(); // Compute IME parent returns nothing if current target and window receiving input // are different i.e. if current window didn't request IME. assertNull("computeImeParent() should be null", mDisplayContent.computeImeParent()); } /** * This tests root task movement between displays and proper root task's, task's and app token's * display container references updates. Loading