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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user