Merge "Keep rounded corners during activity transitions" into tm-qpr-dev am: bce91b77ef

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

Change-Id: I35bad3cd29f51af36903338c9727029026746690
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Oleg Blinnikov
2023-03-15 10:46:41 +00:00
committed by Automerger Merge Worker
2 changed files with 13 additions and 2 deletions

View File

@@ -1005,7 +1005,8 @@ final class LetterboxUiController {
@VisibleForTesting @VisibleForTesting
boolean shouldShowLetterboxUi(WindowState mainWindow) { boolean shouldShowLetterboxUi(WindowState mainWindow) {
return isSurfaceVisible(mainWindow) && mainWindow.areAppWindowBoundsLetterboxed() return (mActivityRecord.isInLetterboxAnimation() || isSurfaceVisible(mainWindow))
&& mainWindow.areAppWindowBoundsLetterboxed()
// Check for FLAG_SHOW_WALLPAPER explicitly instead of using // Check for FLAG_SHOW_WALLPAPER explicitly instead of using
// WindowContainer#showWallpaper because the later will return true when this // WindowContainer#showWallpaper because the later will return true when this
// activity is using blurred wallpaper for letterbox background. // activity is using blurred wallpaper for letterbox background.
@@ -1112,7 +1113,7 @@ final class LetterboxUiController {
// for all corners for consistency and pick a minimal bottom one for consistency with a // for all corners for consistency and pick a minimal bottom one for consistency with a
// taskbar rounded corners. // taskbar rounded corners.
int getRoundedCornersRadius(final WindowState mainWindow) { int getRoundedCornersRadius(final WindowState mainWindow) {
if (!requiresRoundedCorners(mainWindow) || mActivityRecord.isInLetterboxAnimation()) { if (!requiresRoundedCorners(mainWindow)) {
return 0; return 0;
} }

View File

@@ -453,8 +453,17 @@ public class LetterboxUiControllerTest extends WindowTestsBase {
mainWindow.mInvGlobalScale = invGlobalScale; mainWindow.mInvGlobalScale = invGlobalScale;
mLetterboxConfiguration.setLetterboxActivityCornersRadius(configurationRadius); mLetterboxConfiguration.setLetterboxActivityCornersRadius(configurationRadius);
doReturn(true).when(mActivity).isInLetterboxAnimation();
assertEquals(expectedRadius, mController.getRoundedCornersRadius(mainWindow)); assertEquals(expectedRadius, mController.getRoundedCornersRadius(mainWindow));
doReturn(false).when(mActivity).isInLetterboxAnimation();
assertEquals(expectedRadius, mController.getRoundedCornersRadius(mainWindow));
doReturn(false).when(mainWindow).isOnScreen();
assertEquals(0, mController.getRoundedCornersRadius(mainWindow));
doReturn(true).when(mActivity).isInLetterboxAnimation();
assertEquals(expectedRadius, mController.getRoundedCornersRadius(mainWindow));
} }
@Test @Test
@@ -489,6 +498,7 @@ public class LetterboxUiControllerTest extends WindowTestsBase {
doReturn(taskbar).when(insets).peekSource(taskbar.getType()); doReturn(taskbar).when(insets).peekSource(taskbar.getType());
} }
doReturn(mLetterboxedPortraitTaskBounds).when(mActivity).getBounds(); doReturn(mLetterboxedPortraitTaskBounds).when(mActivity).getBounds();
doReturn(false).when(mActivity).isInLetterboxAnimation();
doReturn(true).when(mActivity).isVisible(); doReturn(true).when(mActivity).isVisible();
doReturn(true).when(mActivity).isLetterboxedForFixedOrientationAndAspectRatio(); doReturn(true).when(mActivity).isLetterboxedForFixedOrientationAndAspectRatio();
doReturn(insets).when(mainWindow).getInsetsState(); doReturn(insets).when(mainWindow).getInsetsState();