Merge "Update IME parent onConfigurationChanged" into sc-dev am: 7b1287818e am: a6c44457f9

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

Change-Id: Iab3c19c313348f6b4605c06d55543d2485cc76a8
This commit is contained in:
Taran Singh
2021-05-20 00:07:36 +00:00
committed by Automerger Merge Worker
2 changed files with 7 additions and 2 deletions

View File

@@ -2411,6 +2411,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
mDisplayPolicy.onConfigurationChanged();
mPinnedTaskController.onPostDisplayConfigurationChanged();
}
// Update IME parent if needed.
updateImeParent();
if (lastOrientation != getConfiguration().orientation) {
getMetricsLogger().write(
@@ -3965,7 +3967,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
}
// Otherwise, we just attach it to where the display area policy put it.
return mImeWindowsContainer.getParent().getSurfaceControl();
return mImeWindowsContainer.getParent() != null
? mImeWindowsContainer.getParent().getSurfaceControl() : null;
}
void setLayoutNeeded() {

View File

@@ -349,7 +349,9 @@ public class DisplayContentTests extends WindowTestsBase {
doReturn(imeSurfaceParent).when(mDisplayContent).computeImeParent();
spyOn(imeContainer);
mDisplayContent.updateImeParent();
mDisplayContent.setImeInputTarget(startingWin);
mDisplayContent.onConfigurationChanged(new Configuration());
verify(mDisplayContent).updateImeParent();
// Force reassign the relative layer when the IME surface parent is changed.
verify(imeContainer).assignRelativeLayer(any(), eq(imeSurfaceParent), anyInt(), eq(true));