Merge "Fix unexpected IME visible temporary while dismissing the editor dialog" into tm-qpr-dev am: 45c099a42a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18700126

Change-Id: I7ba6374466d3511603ff4814475afcfde7c09c7d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-06-06 05:50:47 +00:00
committed by Automerger Merge Worker
3 changed files with 7 additions and 4 deletions

View File

@@ -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;
}

View File

@@ -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());
@@ -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());
}
@@ -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());
}

View File

@@ -59,7 +59,7 @@ class CloseImeEditorPopupDialogTest(private val testSpec: FlickerTestParameter)
}
transitions {
imeTestApp.dismissDialog(wmHelper)
instrumentation.uiAutomation.syncInputTransactions()
wmHelper.waitImeGone()
}
teardown {
eachRun {
@@ -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)
}
}