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

Commit c005c12a authored by Eghosa Ewansiha-Vlachavas's avatar Eghosa Ewansiha-Vlachavas Committed by Android (Google) Code Review
Browse files

Merge "Don't inherit task bounds from same instance in DMLPM" into main

parents 8173d4ed f91c0805
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -354,6 +354,7 @@ class DesktopModeLaunchParamsModifier implements LaunchParamsModifier {
        if (existingTaskActivity == null || launchingActivity == null) return false;
        return (Objects.equals(existingTaskActivity.packageName, launchingActivity.packageName))
                && (existingTaskActivity.mUserId == launchingTask.mUserId)
                && existingTaskActivity.getTask().mTaskId != launchingTask.mTaskId
                && isLaunchingNewSingleTask(launchingActivity.launchMode)
                && isClosingExitingInstance(launchingTask.getBaseIntent().getFlags());
    }
+28 −0
Original line number Diff line number Diff line
@@ -575,6 +575,34 @@ public class DesktopModeLaunchParamsModifierTests extends
        assertNotEquals(existingFreeformTask.getBounds(), mResult.mBounds);
    }

    @Test
    @EnableFlags({Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE,
            Flags.FLAG_INHERIT_TASK_BOUNDS_FOR_TRAMPOLINE_TASK_LAUNCHES})
    public void testDontInheritTaskBoundsFromSameTask() {
        setupDesktopModeLaunchParamsModifier();

        final String packageName = "com.same.package";
        // Setup existing task.
        final DisplayContent dc = spy(createNewDisplay());
        final Task existingFreeformTask = spy(new TaskBuilder(mSupervisor).setCreateActivity(true)
                .setWindowingMode(WINDOWING_MODE_FREEFORM).setPackage(packageName).build());
        existingFreeformTask.topRunningActivity().launchMode = LAUNCH_SINGLE_INSTANCE;
        existingFreeformTask.setBounds(
                /* left */ 0,
                /* top */ 0,
                /* right */ 500,
                /* bottom */ 500);
        doReturn(existingFreeformTask.getRootActivity()).when(dc)
                .getTopMostVisibleFreeformActivity();
        existingFreeformTask.onDisplayChanged(dc);
        // Mock task to not trigger override bounds logic.
        doReturn(false).when(existingFreeformTask).hasOverrideBounds();

        // New instance should not inherit task bounds of old instance.
        new CalculateRequestBuilder().setTask(existingFreeformTask).calculate();
        assertNotEquals(existingFreeformTask.getBounds(), mResult.mBounds);
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
    @DisableFlags(Flags.FLAG_ENABLE_WINDOWING_DYNAMIC_INITIAL_BOUNDS)