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

Commit 520233ad authored by Kazuki Takise's avatar Kazuki Takise Committed by Android (Google) Code Review
Browse files

Merge "Update windowing mode with acitivity option in freeform mode" into main

parents 65a793a8 4cfc1e60
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -303,8 +303,15 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier {
        } else {
            if (DEBUG) appendLog("non-freeform-task-display-area");
        }
        final boolean isUpdatingExistingTaskWindowingMode = task != null
                && task.getRequestedOverrideWindowingMode() != WINDOWING_MODE_UNDEFINED
                && launchMode != task.getRequestedOverrideWindowingMode();
        if (DEBUG && isUpdatingExistingTaskWindowingMode) {
            appendLog("updating-existing-task-windowing-mode");
        }
        // If launch mode matches display windowing mode, let it inherit from display.
        outParams.mWindowingMode = launchMode == suggestedDisplayArea.getWindowingMode()
                && !isUpdatingExistingTaskWindowingMode
                ? WINDOWING_MODE_UNDEFINED : launchMode;

        if (phase == PHASE_WINDOWING_MODE) {
+21 −0
Original line number Diff line number Diff line
@@ -627,6 +627,27 @@ public class TaskLaunchParamsModifierTests extends WindowTestsBase {
                WINDOWING_MODE_FREEFORM);
    }

    @Test
    public void testLaunchWindowingModeUpdatesExistingTask() {
        final TestDisplayContent freeformDisplay = createNewDisplayContent(
                WINDOWING_MODE_FREEFORM);

        mCurrent.mPreferredTaskDisplayArea = freeformDisplay.getDefaultTaskDisplayArea();
        ActivityRecord activity = createSourceActivity(freeformDisplay);
        final Task task = activity.getTask();
        task.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
        final ActivityOptions options = ActivityOptions.makeBasic();
        options.setLaunchWindowingMode(WINDOWING_MODE_FREEFORM);

        assertEquals(RESULT_CONTINUE,
                new CalculateRequestBuilder()
                        .setTask(task)
                        .setOptions(options)
                        .calculate());

        assertEquals(WINDOWING_MODE_FREEFORM, mResult.mWindowingMode);
    }

    @Test
    public void testBoundsInOptionsInfersFreeformWithResizeableActivity() {
        final ActivityOptions options = ActivityOptions.makeBasic();