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

Commit ef441c6f authored by Graciela Wissen Putri's avatar Graciela Wissen Putri
Browse files

Fix tests on resolving freeform launch

Only return RESULT_DONE if params have resolved to freeform windowing
mode.

Flag: com.android.window.flags.enable_freeform_display_launch_params
Bug: 401564801
Test: atest DesktopModeLaunchParamsModifierTests
      atest WindowMetricsActivityTests
      atest FreeformWindowingModeTests
Change-Id: I3d7e5d8d861f9d1dc291c4a81c4521101e9e9d75
parent 8fee1444
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ class DesktopModeLaunchParamsModifier implements LaunchParamsModifier {
                + " task-display-area-windowing-mode=" + suggestedDisplayArea.getWindowingMode()
                + " suggested-display-area=" + suggestedDisplayArea);

        boolean hasLaunchWindowingMode = false;
        final boolean inDesktopMode = suggestedDisplayArea.inFreeformWindowingMode()
                || suggestedDisplayArea.getTopMostVisibleFreeformActivity() != null;
        if (DesktopExperienceFlags.ENABLE_FREEFORM_DISPLAY_LAUNCH_PARAMS.isTrue() && task == null
@@ -108,11 +109,10 @@ class DesktopModeLaunchParamsModifier implements LaunchParamsModifier {
                    || inDesktopMode)) {
            if (options != null) {
                final int windowingMode = options.getLaunchWindowingMode();
                if (windowingMode == WINDOWING_MODE_UNDEFINED
                        || windowingMode == WINDOWING_MODE_FREEFORM) {
                if (windowingMode == WINDOWING_MODE_FREEFORM) {
                    // Launching freeform in desktop but not ready to resolve bounds since task is
                    // null, return RESULT_DONE to prevent other modifiers from setting bounds.
                    outParams.mWindowingMode = options.getLaunchWindowingMode();
                    outParams.mWindowingMode = windowingMode;
                    appendLog("launch-freeform");
                    return RESULT_DONE;
                }
@@ -165,6 +165,7 @@ class DesktopModeLaunchParamsModifier implements LaunchParamsModifier {
                outParams.mWindowingMode = sourceTask.getWindowingMode();
                appendLog("inherit-from-source=" + outParams.mWindowingMode);
            }
            hasLaunchWindowingMode = true;
        }

        if (phase == PHASE_WINDOWING_MODE) {
@@ -217,7 +218,8 @@ class DesktopModeLaunchParamsModifier implements LaunchParamsModifier {
            appendLog("inherit-options=" + options.getLaunchWindowingMode());
            return RESULT_DONE;
        }
        if (DesktopExperienceFlags.ENABLE_FREEFORM_DISPLAY_LAUNCH_PARAMS.isTrue()) {
        if (DesktopExperienceFlags.ENABLE_FREEFORM_DISPLAY_LAUNCH_PARAMS.isTrue()
                && hasLaunchWindowingMode) {
            return RESULT_DONE;
        }
        return RESULT_CONTINUE;
+3 −2
Original line number Diff line number Diff line
@@ -1572,7 +1572,8 @@ public class DesktopModeLaunchParamsModifierTests extends

    @Test
    @EnableFlags({Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE,
            Flags.FLAG_DISABLE_DESKTOP_LAUNCH_PARAMS_OUTSIDE_DESKTOP_BUG_FIX})
            Flags.FLAG_DISABLE_DESKTOP_LAUNCH_PARAMS_OUTSIDE_DESKTOP_BUG_FIX,
            Flags.FLAG_ENABLE_FREEFORM_DISPLAY_LAUNCH_PARAMS})
    public void testFreeformWindowingModeAppliedIfSourceTaskExists() {
        setupDesktopModeLaunchParamsModifier();

@@ -1583,7 +1584,7 @@ public class DesktopModeLaunchParamsModifierTests extends
        final ActivityRecord sourceActivity = new ActivityBuilder(task.mAtmService)
                .setTask(sourceTask).build();

        assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setTask(task)
        assertEquals(RESULT_DONE, new CalculateRequestBuilder().setTask(task)
                .setSource(sourceActivity).calculate());
        assertEquals(WINDOWING_MODE_FREEFORM, mResult.mWindowingMode);
    }