summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Phill Hayers <phillhayers@google.com> 2022-12-13 13:53:14 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-12-13 13:53:14 +0000
commit19954f5fcae5cf4787c9b0b89bede29255af51b0 (patch)
treeebb0a038f77ab6768cacb1dc64a2d4a84785febc
parentaa7f951c7b1dcc11c371df13351de245f9c4a7bc (diff)
parentedddc6be3ec83919886862189de8d6fa83cf5a46 (diff)
Merge "Ensure that VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP doesn't cause NPEs"
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index ae84e96f4c2f..c700ccbdc0a1 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -1414,12 +1414,20 @@ public final class DisplayManagerService extends SystemService {
// LogicalDisplayMapper aware of the link between the new display and its associated virtual
// device before triggering DISPLAY_DEVICE_EVENT_ADDED.
if ((flags & VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP) != 0) {
- try {
- final int virtualDeviceId = virtualDevice.getDeviceId();
- mLogicalDisplayMapper.associateDisplayDeviceWithVirtualDevice(
- device, virtualDeviceId);
- } catch (RemoteException e) {
- e.rethrowFromSystemServer();
+ if (virtualDevice != null) {
+ try {
+ final int virtualDeviceId = virtualDevice.getDeviceId();
+ mLogicalDisplayMapper.associateDisplayDeviceWithVirtualDevice(
+ device, virtualDeviceId);
+ } catch (RemoteException e) {
+ e.rethrowFromSystemServer();
+ }
+ } else {
+ Slog.i(
+ TAG,
+ "Display created with VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP set, but no"
+ + " virtual device. The display will not be added to a device display"
+ + " group.");
}
}