Merge "Use size compat bounds for window layout" into sc-v2-dev

This commit is contained in:
Riddle Hsu
2021-07-30 17:36:24 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 0 deletions

View File

@@ -1441,6 +1441,14 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
}
}
@Override
public Rect getBounds() {
// The window bounds are used for layout in screen coordinates. If the token has bounds for
// size compatibility mode, its configuration bounds are app based coordinates which should
// not be used for layout.
return mToken.hasSizeCompatBounds() ? mToken.getBounds() : super.getBounds();
}
/** Retrieves the current frame of the window that the application sees. */
Rect getFrame() {
return mWindowFrames.mFrame;

View File

@@ -320,6 +320,11 @@ public class SizeCompatTests extends WindowTestsBase {
assertScaled();
// Activity is sandboxed due to size compat mode.
assertActivityMaxBoundsSandboxed();
final WindowState appWindow = addWindowToActivity(mActivity);
assertTrue(mActivity.hasSizeCompatBounds());
assertEquals("App window must use size compat bounds for layout in screen space",
mActivity.getBounds(), appWindow.getBounds());
}
@Test