Use display windowing mode if undefined

A undefined windowing mode prevented from reusing the
candidate task while cold start an activity into
split-screen from Recents.

Use windowing mode from its parent for always-create-stack
check if undefined.

Bug: 152408408
Test: atest TaskDisplayAreaTests
Test: cold start to enter split-screen
Change-Id: Ie0f5b69c9d09ad517b749827dbf2a5e7297b1075
diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java
index 13e4d8b..726528c 100644
--- a/services/core/java/com/android/server/wm/TaskDisplayArea.java
+++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java
@@ -755,7 +755,11 @@
      */
     ActivityStack getOrCreateStack(int windowingMode, int activityType, boolean onTop,
             Intent intent, Task candidateTask) {
-        if (!alwaysCreateStack(windowingMode, activityType)) {
+        // Need to pass in a determined windowing mode to see if a new stack should be created,
+        // so use its parent's windowing mode if it is undefined.
+        if (!alwaysCreateStack(
+                windowingMode != WINDOWING_MODE_UNDEFINED ? windowingMode : getWindowingMode(),
+                activityType)) {
             ActivityStack stack = getStack(windowingMode, activityType);
             if (stack != null) {
                 return stack;