From ebeb6ced3700f90e99c407f73661f0a39ad7d6b1 Mon Sep 17 00:00:00 2001 From: bkchoi Date: Wed, 31 May 2023 09:48:23 -0700 Subject: [PATCH] Exclude a private display from getDisplayIdsForStartingVisibleBackgroundUsers A private display (e.g. cluster dipslay in Automotive) may not be used for starting a visible background user, so should be exlcuded from the results of ActivityManagerService#getDisplayIdsForStartingVisibleBackgroundUsers. Bug: 284489759 Test: adb shell cmd activity list-displays-for-starting-users atest ActivityManagerServiceTest Change-Id: Ic34c10cf8736e6870e4a8b9be2eb17ce280a44b3 --- .../core/java/com/android/server/am/ActivityManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 460ce4484a4b9..6231abb787631 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -19520,7 +19520,7 @@ public class ActivityManagerService extends IActivityManager.Stub for (Display display : allDisplays) { int displayId = display.getDisplayId(); // TODO(b/247592632): check other properties like isSecure or proper display type - if (display.isValid() + if (display.isValid() && ((display.getFlags() & Display.FLAG_PRIVATE) == 0) && (allowOnDefaultDisplay || displayId != Display.DEFAULT_DISPLAY)) { displayIds[numberValidDisplays++] = displayId; }