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

Commit 55c39558 authored by Maryam Dehaini's avatar Maryam Dehaini Committed by Android (Google) Code Review
Browse files

Merge "Restore window when maximize window button clicked when task is maximized" into main

parents bcd649ba 078be49f
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -935,10 +935,12 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
                //  back to the decoration using
                //  {@link DesktopModeWindowDecoration#setOnMaximizeOrRestoreClickListener}, which
                //  should shared with the maximize menu's maximize/restore actions.
                final DesktopRepository desktopRepository = mDesktopUserRepositories.getProfile(
                        decoration.mTaskInfo.userId);
                if (Flags.enableFullyImmersiveInDesktop()
                        && TaskInfoKt.getRequestingImmersive(decoration.mTaskInfo)) {
                    // Task is requesting immersive, so it should either enter or exit immersive,
                    // depending on immersive state.
                        && desktopRepository.isTaskInFullImmersiveState(
                                decoration.mTaskInfo.taskId)) {
                    // Task is in immersive and should exit.
                    onEnterOrExitImmersive(decoration.mTaskInfo);
                } else {
                    // Full immersive is disabled or task doesn't request/support it, so just
+0 −20
Original line number Diff line number Diff line
@@ -1052,26 +1052,6 @@ class DesktopModeWindowDecorViewModelTests : DesktopModeWindowDecorViewModelTest
        assertEquals(decor.mTaskInfo.token.asBinder(), wct.getHierarchyOps().get(0).getContainer())
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_FULLY_IMMERSIVE_IN_DESKTOP)
    fun testImmersiveButtonClick_entersImmersiveMode() {
        val onClickListenerCaptor = forClass(View.OnClickListener::class.java)
                as ArgumentCaptor<View.OnClickListener>
        val decor = createOpenTaskDecoration(
            windowingMode = WINDOWING_MODE_FREEFORM,
            onCaptionButtonClickListener = onClickListenerCaptor,
            requestingImmersive = true,
        )
        val view = mock(View::class.java)
        whenever(view.id).thenReturn(R.id.maximize_window)
        whenever(mockDesktopRepository.isTaskInFullImmersiveState(decor.mTaskInfo.taskId))
            .thenReturn(false)

        onClickListenerCaptor.value.onClick(view)

        verify(mockDesktopImmersiveController).moveTaskToImmersive(decor.mTaskInfo)
    }

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