Merge "InsetsSourceProvider: Fix serverVisible update order in onPostLayout" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-11 17:43:35 +00:00
committed by Android (Google) Code Review
2 changed files with 3 additions and 3 deletions

View File

@@ -219,6 +219,8 @@ class InsetsSourceProvider {
return; return;
} }
setServerVisible(mWin.wouldBeVisibleIfPolicyIgnored() && mWin.isVisibleByPolicy()
&& !mWin.mGivenInsetsPending);
updateSourceFrame(); updateSourceFrame();
if (mControl != null) { if (mControl != null) {
final Rect frame = mWin.getWindowFrames().mFrame; final Rect frame = mWin.getWindowFrames().mFrame;
@@ -228,8 +230,6 @@ class InsetsSourceProvider {
mStateController.notifyControlChanged(mControlTarget); mStateController.notifyControlChanged(mControlTarget);
} }
} }
setServerVisible(mWin.wouldBeVisibleIfPolicyIgnored() && mWin.isVisibleByPolicy()
&& !mWin.mGivenInsetsPending);
} }
/** /**

View File

@@ -54,7 +54,6 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
mSource.setVisible(true); mSource.setVisible(true);
mProvider = new InsetsSourceProvider(mSource, mProvider = new InsetsSourceProvider(mSource,
mDisplayContent.getInsetsStateController(), mDisplayContent); mDisplayContent.getInsetsStateController(), mDisplayContent);
mProvider.setServerVisible(true);
mImeProvider = new InsetsSourceProvider(mImeSource, mImeProvider = new InsetsSourceProvider(mImeSource,
mDisplayContent.getInsetsStateController(), mDisplayContent); mDisplayContent.getInsetsStateController(), mDisplayContent);
} }
@@ -106,6 +105,7 @@ public class InsetsSourceProviderTest extends WindowTestsBase {
public void testPostLayout_frameProvider() { public void testPostLayout_frameProvider() {
final WindowState statusBar = createWindow(null, TYPE_APPLICATION, "statusBar"); final WindowState statusBar = createWindow(null, TYPE_APPLICATION, "statusBar");
statusBar.getFrameLw().set(0, 0, 500, 100); statusBar.getFrameLw().set(0, 0, 500, 100);
statusBar.mHasSurface = true;
mProvider.setWindow(statusBar, mProvider.setWindow(statusBar,
(displayFrames, windowState, rect) -> { (displayFrames, windowState, rect) -> {
rect.set(10, 10, 20, 20); rect.set(10, 10, 20, 20);