diff options
| author | 2024-10-18 16:39:11 +0000 | |
|---|---|---|
| committer | 2024-10-18 16:39:11 +0000 | |
| commit | 8a526b4ae2ee2137221e991f7bcc73e93cab89d5 (patch) | |
| tree | eed55a2b0fcbf4176d51e3dc3c10c7bb2758dce1 | |
| parent | 1211482074d5568b7107bf03323e658fcab195d3 (diff) | |
| parent | 036933d9608c43e483514e1c1003aaa6531664f1 (diff) | |
Merge "Specify the display ID to mirror when creating virtual display" into main
| -rw-r--r-- | core/java/android/hardware/display/DisplayManager.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/core/java/android/hardware/display/DisplayManager.java b/core/java/android/hardware/display/DisplayManager.java index 97f6899ff141..b0ea92d140a5 100644 --- a/core/java/android/hardware/display/DisplayManager.java +++ b/core/java/android/hardware/display/DisplayManager.java @@ -18,6 +18,7 @@ package android.hardware.display; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.HdrCapabilities.HdrType; +import static android.view.Display.INVALID_DISPLAY; import android.Manifest; import android.annotation.FlaggedApi; @@ -47,6 +48,7 @@ import android.os.Looper; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.UserManager; import android.util.Log; import android.util.Pair; import android.util.Slog; @@ -96,6 +98,8 @@ public final class DisplayManager { @GuardedBy("mLock") private final WeakDisplayCache mDisplayCache = new WeakDisplayCache(); + private int mDisplayIdToMirror = INVALID_DISPLAY; + /** * Broadcast receiver that indicates when the Wifi display status changes. * <p> @@ -1086,6 +1090,7 @@ public final class DisplayManager { if (surface != null) { builder.setSurface(surface); } + builder.setDisplayIdToMirror(getDisplayIdToMirror()); return createVirtualDisplay(builder.build(), handler, callback); } @@ -1163,6 +1168,7 @@ public final class DisplayManager { if (surface != null) { builder.setSurface(surface); } + builder.setDisplayIdToMirror(getDisplayIdToMirror()); return createVirtualDisplay(projection, builder.build(), callback, handler); } @@ -1708,6 +1714,16 @@ public final class DisplayManager { return mGlobal.getDefaultDozeBrightness(displayId); } + private int getDisplayIdToMirror() { + if (mDisplayIdToMirror == INVALID_DISPLAY) { + final UserManager userManager = mContext.getSystemService(UserManager.class); + mDisplayIdToMirror = userManager.isVisibleBackgroundUsersSupported() + ? userManager.getMainDisplayIdAssignedToUser() + : DEFAULT_DISPLAY; + } + return mDisplayIdToMirror; + } + /** * Listens for changes in available display devices. */ |