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

Commit bbddf4cf authored by Omar Elmekkawy's avatar Omar Elmekkawy
Browse files

Exit tiling on entering immersive mode.

Flag: com.android.window.flags.enable_tile_resizing

Test: unit tests and on device testing

Bug: 402688061
Change-Id: Id573e7ead79a003cc48449a3fd9d1c5b23bbb8e6
parent 421044be
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -754,6 +754,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
        } else {
            mDesktopModeUiEventLogger.log(decoration.mTaskInfo,
                    DesktopUiEventEnum.DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_IMMERSIVE);
            removeTaskIfTiled(decoration.mTaskInfo.displayId, decoration.mTaskInfo.taskId);
            mDesktopImmersiveController.moveTaskToImmersive(decoration.mTaskInfo);
        }
        decoration.closeMaximizeMenu();
+18 −0
Original line number Diff line number Diff line
@@ -1116,6 +1116,24 @@ class DesktopModeWindowDecorViewModelTests : DesktopModeWindowDecorViewModelTest
        verify(mockDesktopImmersiveController).moveTaskToImmersive(decor.mTaskInfo)
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP)
    fun testImmersiveMenuOptionClick_exitsTiling() {
        val onImmersiveClickCaptor = argumentCaptor<() -> Unit>()
        val decor = createOpenTaskDecoration(
            windowingMode = WINDOWING_MODE_FREEFORM,
            onImmersiveOrRestoreListenerCaptor = onImmersiveClickCaptor,
            requestingImmersive = true,
        )
        whenever(mockDesktopRepository.isTaskInFullImmersiveState(decor.mTaskInfo.taskId))
            .thenReturn(false)

        onImmersiveClickCaptor.firstValue()

        verify(mockTilingWindowDecoration)
            .removeTaskIfTiled(decor.mTaskInfo.displayId, decor.mTaskInfo.taskId)
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP)
    fun testImmersiveClick_closesMaximizeMenu() {