Merge "Fix IME flicker when switching recents tasks"

This commit is contained in:
Ming-Shin Lu
2021-11-05 01:18:28 +00:00
committed by Android (Google) Code Review
2 changed files with 4 additions and 0 deletions

View File

@@ -4930,6 +4930,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
if (imeTarget != null && !(imeTarget.mActivityRecord != null
&& imeTarget.mActivityRecord.hasStartingWindow())) {
final boolean canImeTargetSetRelativeLayer = imeTarget.getSurfaceControl() != null
&& imeTarget == mImeControlTarget
&& !imeTarget.inMultiWindowMode()
&& imeTarget.mToken.getActivity(app -> app.isAnimating(TRANSITION | PARENTS,
ANIMATION_TYPE_ALL & ~ANIMATION_TYPE_RECENTS)) == null;

View File

@@ -297,6 +297,7 @@ public class ZOrderingTests extends WindowTestsBase {
final WindowState appAboveImeTarget = createWindow("appAboveImeTarget");
mDisplayContent.setImeLayeringTarget(imeAppTarget);
mDisplayContent.setImeControlTarget(imeAppTarget);
mDisplayContent.assignChildLayers(mTransaction);
// Ime should be above all app windows except for non-fullscreen app window above it and
@@ -343,6 +344,7 @@ public class ZOrderingTests extends WindowTestsBase {
@Test
public void testAssignWindowLayers_ForStatusBarImeTarget() {
mDisplayContent.setImeLayeringTarget(mStatusBarWindow);
mDisplayContent.setImeControlTarget(mStatusBarWindow);
mDisplayContent.assignChildLayers(mTransaction);
assertWindowHigher(mImeWindow, mChildAppWindowAbove);
@@ -408,6 +410,7 @@ public class ZOrderingTests extends WindowTestsBase {
mAppWindow.mActivityRecord, "imeAppTarget");
mDisplayContent.setImeInputTarget(imeAppTarget);
mDisplayContent.setImeLayeringTarget(imeAppTarget);
mDisplayContent.setImeControlTarget(imeAppTarget);
mDisplayContent.updateImeParent();
// Simulate the ime layering target task is animating with recents animation.