Return `RESULT_CONTINUE` in `DesktopModeLaunchParamsModifier`

Return `RESULT_CONTINUE` instead of `RESULT_DONE` in
`DesktopModeLaunchParamsModifier`. This allows the default modifer
(`TaskLaunchParamsModifier`) to also have an influence on the launch
params and populate any fields that are required. The
`TaskLaunchParamsModifier` honours the values set by previous modifers
so we do not have to worried about anything gettings overridden.

Fixes: 338076897
Fixes: 336998072
Test: atest WmTests:DesktopModeLaunchParamsModifierTests
Test: atest CtsWindowManagerDeviceMultiDisplay:MultiDisplayPolicyTests
Test: atest CtsWindowManagerDeviceMultiDisplay:MultiDisplayClientTests
Test: atest CtsWindowManagerDeviceMultiDisplay:MultiDisplayActivityLaunchTests

Change-Id: Iffb29064711bba99f7dee7121a2a4f1cc1c82f47
diff --git a/services/core/java/com/android/server/wm/DesktopModeLaunchParamsModifier.java b/services/core/java/com/android/server/wm/DesktopModeLaunchParamsModifier.java
index 8069a93..d55e415 100644
--- a/services/core/java/com/android/server/wm/DesktopModeLaunchParamsModifier.java
+++ b/services/core/java/com/android/server/wm/DesktopModeLaunchParamsModifier.java
@@ -118,19 +118,7 @@
         }
 
         if (phase == PHASE_WINDOWING_MODE) {
-            return RESULT_DONE;
-        }
-
-        // TODO(b/336998072) - Find a better solution to this that makes use of the logic from
-        //  TaskLaunchParamsModifier. Put logic in common utils, return RESULT_CONTINUE, inherit
-        //  from parent class, etc.
-        if (outParams.mPreferredTaskDisplayArea == null && task.getRootTask() != null) {
-            appendLog("display-from-task=" + task.getRootTask().getDisplayId());
-            outParams.mPreferredTaskDisplayArea = task.getRootTask().getDisplayArea();
-        }
-
-        if (phase == PHASE_DISPLAY_AREA) {
-            return RESULT_DONE;
+            return RESULT_CONTINUE;
         }
 
         if (!currentParams.mBounds.isEmpty()) {
@@ -142,7 +130,7 @@
 
         appendLog("setting desktop mode task bounds to %s", outParams.mBounds);
 
-        return RESULT_DONE;
+        return RESULT_CONTINUE;
     }
 
     /**
diff --git a/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java b/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java
index 89ae802..c2bb162 100644
--- a/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/DesktopModeLaunchParamsModifierTests.java
@@ -26,7 +26,6 @@
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.PHASE_BOUNDS;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.PHASE_DISPLAY;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_CONTINUE;
-import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_DONE;
 import static com.android.server.wm.LaunchParamsController.LaunchParamsModifier.RESULT_SKIP;
 
 import static org.junit.Assert.assertEquals;
@@ -101,12 +100,12 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
-    public void testReturnsDoneIfDesktopWindowingIsEnabledAndUnsupportedDeviceOverridden() {
+    public void testReturnsContinueIfDesktopWindowingIsEnabledAndUnsupportedDeviceOverridden() {
         setupDesktopModeLaunchParamsModifier(/*isDesktopModeSupported=*/ true,
                 /*enforceDeviceRestrictions=*/ false);
 
         final Task task = new TaskBuilder(mSupervisor).build();
-        assertEquals(RESULT_DONE, new CalculateRequestBuilder().setTask(task).calculate());
+        assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setTask(task).calculate());
     }
 
     @Test
@@ -139,22 +138,22 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
-    public void testReturnsDoneIfTaskUsingActivityTypeStandard() {
+    public void testReturnsContinueIfTaskUsingActivityTypeStandard() {
         setupDesktopModeLaunchParamsModifier();
 
         final Task task = new TaskBuilder(mSupervisor).setActivityType(
                 ACTIVITY_TYPE_STANDARD).build();
-        assertEquals(RESULT_DONE, new CalculateRequestBuilder().setTask(task).calculate());
+        assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setTask(task).calculate());
     }
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
-    public void testReturnsDoneIfTaskUsingActivityTypeUndefined() {
+    public void testReturnsContinueIfTaskUsingActivityTypeUndefined() {
         setupDesktopModeLaunchParamsModifier();
 
         final Task task = new TaskBuilder(mSupervisor).setActivityType(
                 ACTIVITY_TYPE_UNDEFINED).build();
-        assertEquals(RESULT_DONE, new CalculateRequestBuilder().setTask(task).calculate());
+        assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setTask(task).calculate());
     }
 
     @Test
@@ -180,7 +179,7 @@
         task.getDisplayArea().setBounds(new Rect(0, 0, displayWidth, displayHeight));
         final int desiredWidth = (int) (displayWidth * DESKTOP_MODE_INITIAL_BOUNDS_SCALE);
         final int desiredHeight = (int) (displayHeight * DESKTOP_MODE_INITIAL_BOUNDS_SCALE);
-        assertEquals(RESULT_DONE, new CalculateRequestBuilder().setTask(task).calculate());
+        assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setTask(task).calculate());
         assertEquals(desiredWidth, mResult.mBounds.width());
         assertEquals(desiredHeight, mResult.mBounds.height());
     }
@@ -196,7 +195,7 @@
         mCurrent.mPreferredTaskDisplayArea = mockTaskDisplayArea;
         mCurrent.mWindowingMode = WINDOWING_MODE_FREEFORM;
 
-        assertEquals(RESULT_DONE, new CalculateRequestBuilder().setTask(task).calculate());
+        assertEquals(RESULT_CONTINUE, new CalculateRequestBuilder().setTask(task).calculate());
         assertEquals(mockTaskDisplayArea, mResult.mPreferredTaskDisplayArea);
         assertEquals(WINDOWING_MODE_FREEFORM, mResult.mWindowingMode);
     }