Support non-standard activity type on secondary display
Get a valid stack on display by also evaluating the
windowing mode and activity type.
Bug: 111363427
Test: atest CtsActivityManagerDeviceTestCases
Change-Id: I74a6ee5436b69056814062c975ce0233c54c8832
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index d59a651..e404e62 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -2102,7 +2102,7 @@
if (mTargetStack == null && targetDisplayId != sourceStack.mDisplayId) {
// Can't use target display, lets find a stack on the source display.
mTargetStack = mSupervisor.getValidLaunchStackOnDisplay(
- sourceStack.mDisplayId, mStartActivity);
+ sourceStack.mDisplayId, mStartActivity, mOptions);
}
if (mTargetStack == null) {
// There are no suitable stacks on the target and source display(s). Look on all
@@ -2325,7 +2325,7 @@
if (mPreferredDisplayId != DEFAULT_DISPLAY) {
// Try to put the activity in a stack on a secondary display.
- stack = mSupervisor.getValidLaunchStackOnDisplay(mPreferredDisplayId, r);
+ stack = mSupervisor.getValidLaunchStackOnDisplay(mPreferredDisplayId, r, aOptions);
if (stack == null) {
// If source display is not suitable - look for topmost valid stack in the system.
if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS,