Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c9cdca6 authored by Oleg Blinnikov's avatar Oleg Blinnikov
Browse files

Keep rounded corners during activity transitions

Bug: 270522653
Test: atest LetterboxUiControllerTest
Change-Id: I6daef17d26a6acada02146edca9222f1c1729922
parent dc94ae96
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1005,7 +1005,8 @@ final class LetterboxUiController {

    @VisibleForTesting
    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
                // WindowContainer#showWallpaper because the later will return true when this
                // 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
    // taskbar rounded corners.
    int getRoundedCornersRadius(final WindowState mainWindow) {
        if (!requiresRoundedCorners(mainWindow) || mActivityRecord.isInLetterboxAnimation()) {
        if (!requiresRoundedCorners(mainWindow)) {
            return 0;
        }

+10 −0
Original line number Diff line number Diff line
@@ -453,8 +453,17 @@ public class LetterboxUiControllerTest extends WindowTestsBase {
        mainWindow.mInvGlobalScale = invGlobalScale;
        mLetterboxConfiguration.setLetterboxActivityCornersRadius(configurationRadius);

        doReturn(true).when(mActivity).isInLetterboxAnimation();
        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
@@ -489,6 +498,7 @@ public class LetterboxUiControllerTest extends WindowTestsBase {
            doReturn(taskbar).when(insets).peekSource(taskbar.getType());
        }
        doReturn(mLetterboxedPortraitTaskBounds).when(mActivity).getBounds();
        doReturn(false).when(mActivity).isInLetterboxAnimation();
        doReturn(true).when(mActivity).isVisible();
        doReturn(true).when(mActivity).isLetterboxedForFixedOrientationAndAspectRatio();
        doReturn(insets).when(mainWindow).getInsetsState();