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/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 0ca8e1a..4457be5 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -3351,11 +3351,16 @@
private void addStackReferenceIfNeeded(TaskStack stack) {
if (stack.isActivityTypeHome()) {
+ // TODO(b/111363427) Rollback to throws exceptions once we figure out how to
+ // properly deal with home type stack when external display removed
if (mHomeStack != null) {
- throw new IllegalArgumentException("addStackReferenceIfNeeded: home stack="
+ // throw new IllegalArgumentException("addStackReferenceIfNeeded: home stack="
+ // + mHomeStack + " already exist on display=" + this + " stack=" + stack);
+ Slog.e(TAG, "addStackReferenceIfNeeded: home stack="
+ mHomeStack + " already exist on display=" + this + " stack=" + stack);
+ } else {
+ mHomeStack = stack;
}
- mHomeStack = stack;
}
final int windowingMode = stack.getWindowingMode();
if (windowingMode == WINDOWING_MODE_PINNED) {