Fix issues with launching activities on virtual displays
- Virtual displays might have hdr capabilities not initialized,
which lead to exception when checking.
- Dynamic stacks were mistakenly considered an invalid launch stack.
Test: android.server.cts.ActivityManagerDisplayTests
Change-Id: I20356d6e25cf9e5fa4a3d7bd3699a8e82a73f21a
diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java
index 82388f8..f6b94af 100644
--- a/core/java/android/view/DisplayInfo.java
+++ b/core/java/android/view/DisplayInfo.java
@@ -520,7 +520,7 @@
}
public boolean isHdr() {
- int[] types = hdrCapabilities.getSupportedHdrTypes();
+ int[] types = hdrCapabilities != null ? hdrCapabilities.getSupportedHdrTypes() : null;
return types != null && types.length > 0;
}
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index f7eb5d5..96f732e 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -2072,6 +2072,9 @@
case RECENTS_STACK_ID:
return r.isRecentsActivity();
default:
+ if (StackId.isDynamicStack(stackId)) {
+ return true;
+ }
Slog.e(TAG, "isValidLaunchStackId: Unexpected stackId=" + stackId);
return false;
}