Loading core/java/android/companion/virtual/VirtualDeviceManager.java +0 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,6 @@ import java.util.function.IntConsumer; @SystemService(Context.VIRTUAL_DEVICE_SERVICE) public final class VirtualDeviceManager { private static final boolean DEBUG = false; private static final String TAG = "VirtualDeviceManager"; private static final int DEFAULT_VIRTUAL_DISPLAY_FLAGS = Loading @@ -84,7 +83,6 @@ public final class VirtualDeviceManager { | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY | DisplayManager.VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL | DisplayManager.VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS; /** Loading core/java/android/hardware/display/DisplayManager.java +9 −0 Original line number Diff line number Diff line Loading @@ -419,6 +419,15 @@ public final class DisplayManager { @TestApi public static final int VIRTUAL_DISPLAY_FLAG_OWN_FOCUS = 1 << 14; /** * Virtual display flags: Indicates that the display should not be a part of the default * DisplayGroup and instead be part of a DisplayGroup associated with its virtual device. * * @see #createVirtualDisplay * @hide */ public static final int VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP = 1 << 15; /** @hide */ @IntDef(prefix = {"MATCH_CONTENT_FRAMERATE_"}, value = { Loading services/core/java/com/android/server/display/DisplayDeviceInfo.java +9 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ final class DisplayDeviceInfo { /** * Flag: Indicates that the display should always be unlocked. Only valid on virtual displays * that aren't in the default display group. * @see #FLAG_OWN_DISPLAY_GROUP * @see #FLAG_OWN_DISPLAY_GROUP and #FLAG_DEVICE_DISPLAY_GROUP * @hide */ public static final int FLAG_ALWAYS_UNLOCKED = 1 << 15; Loading @@ -171,6 +171,14 @@ final class DisplayDeviceInfo { */ public static final int FLAG_OWN_FOCUS = 1 << 17; /** * Flag: indicates that the display should not be a part of the default {@link DisplayGroup} and * instead be part of a {@link DisplayGroup} associated with the Virtual Device. * * @hide */ public static final int FLAG_DEVICE_DISPLAY_GROUP = 1 << 18; /** * Touch attachment: Display does not receive touch. */ Loading services/core/java/com/android/server/display/DisplayManagerService.java +5 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static android.hardware.display.DisplayManager.EventsMask; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC; Loading Loading @@ -1276,6 +1277,9 @@ public final class DisplayManagerService extends SystemService { if ((flags & VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) != 0) { flags &= ~VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP; } if ((flags & VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP) == 0 && virtualDevice != null) { flags |= VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; } if (projection != null) { try { Loading Loading @@ -1403,7 +1407,7 @@ public final class DisplayManagerService extends SystemService { // If the display is to be added to a device display group, we need to make the // LogicalDisplayMapper aware of the link between the new display and its associated virtual // device before triggering DISPLAY_DEVICE_EVENT_ADDED. if (virtualDevice != null && (flags & VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP) == 0) { if ((flags & VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP) != 0) { try { final int virtualDeviceId = virtualDevice.getDeviceId(); mLogicalDisplayMapper.associateDisplayDeviceWithVirtualDevice( Loading services/core/java/com/android/server/display/VirtualDisplayAdapter.java +12 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_ALWAY import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION; Loading @@ -32,6 +33,7 @@ import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_TOUCH import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_TRUSTED; import static com.android.server.display.DisplayDeviceInfo.FLAG_ALWAYS_UNLOCKED; import static com.android.server.display.DisplayDeviceInfo.FLAG_DEVICE_DISPLAY_GROUP; import static com.android.server.display.DisplayDeviceInfo.FLAG_OWN_DISPLAY_GROUP; import static com.android.server.display.DisplayDeviceInfo.FLAG_TOUCH_FEEDBACK_DISABLED; import static com.android.server.display.DisplayDeviceInfo.FLAG_TRUSTED; Loading Loading @@ -466,6 +468,9 @@ public class VirtualDisplayAdapter extends DisplayAdapter { mInfo.flags |= FLAG_OWN_DISPLAY_GROUP; } } if ((mFlags & VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP) != 0) { mInfo.flags |= FLAG_DEVICE_DISPLAY_GROUP; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_SECURE) != 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_SECURE; Loading Loading @@ -498,11 +503,15 @@ public class VirtualDisplayAdapter extends DisplayAdapter { mInfo.flags |= FLAG_TRUSTED; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED) != 0) { if ((mFlags & VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP) != 0) { if ((mInfo.flags & DisplayDeviceInfo.FLAG_OWN_DISPLAY_GROUP) != 0 || (mFlags & VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP) != 0) { mInfo.flags |= FLAG_ALWAYS_UNLOCKED; } else { Slog.w(TAG, "Ignoring VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED as it " + "requires VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP."); Slog.w( TAG, "Ignoring VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED as it requires" + " VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP or" + " VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP."); } } if ((mFlags & VIRTUAL_DISPLAY_FLAG_TOUCH_FEEDBACK_DISABLED) != 0) { Loading Loading
core/java/android/companion/virtual/VirtualDeviceManager.java +0 −2 Original line number Diff line number Diff line Loading @@ -75,7 +75,6 @@ import java.util.function.IntConsumer; @SystemService(Context.VIRTUAL_DEVICE_SERVICE) public final class VirtualDeviceManager { private static final boolean DEBUG = false; private static final String TAG = "VirtualDeviceManager"; private static final int DEFAULT_VIRTUAL_DISPLAY_FLAGS = Loading @@ -84,7 +83,6 @@ public final class VirtualDeviceManager { | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY | DisplayManager.VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL | DisplayManager.VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS; /** Loading
core/java/android/hardware/display/DisplayManager.java +9 −0 Original line number Diff line number Diff line Loading @@ -419,6 +419,15 @@ public final class DisplayManager { @TestApi public static final int VIRTUAL_DISPLAY_FLAG_OWN_FOCUS = 1 << 14; /** * Virtual display flags: Indicates that the display should not be a part of the default * DisplayGroup and instead be part of a DisplayGroup associated with its virtual device. * * @see #createVirtualDisplay * @hide */ public static final int VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP = 1 << 15; /** @hide */ @IntDef(prefix = {"MATCH_CONTENT_FRAMERATE_"}, value = { Loading
services/core/java/com/android/server/display/DisplayDeviceInfo.java +9 −1 Original line number Diff line number Diff line Loading @@ -145,7 +145,7 @@ final class DisplayDeviceInfo { /** * Flag: Indicates that the display should always be unlocked. Only valid on virtual displays * that aren't in the default display group. * @see #FLAG_OWN_DISPLAY_GROUP * @see #FLAG_OWN_DISPLAY_GROUP and #FLAG_DEVICE_DISPLAY_GROUP * @hide */ public static final int FLAG_ALWAYS_UNLOCKED = 1 << 15; Loading @@ -171,6 +171,14 @@ final class DisplayDeviceInfo { */ public static final int FLAG_OWN_FOCUS = 1 << 17; /** * Flag: indicates that the display should not be a part of the default {@link DisplayGroup} and * instead be part of a {@link DisplayGroup} associated with the Virtual Device. * * @hide */ public static final int FLAG_DEVICE_DISPLAY_GROUP = 1 << 18; /** * Touch attachment: Display does not receive touch. */ Loading
services/core/java/com/android/server/display/DisplayManagerService.java +5 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static android.hardware.display.DisplayManager.EventsMask; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC; Loading Loading @@ -1276,6 +1277,9 @@ public final class DisplayManagerService extends SystemService { if ((flags & VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) != 0) { flags &= ~VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP; } if ((flags & VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP) == 0 && virtualDevice != null) { flags |= VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; } if (projection != null) { try { Loading Loading @@ -1403,7 +1407,7 @@ public final class DisplayManagerService extends SystemService { // If the display is to be added to a device display group, we need to make the // LogicalDisplayMapper aware of the link between the new display and its associated virtual // device before triggering DISPLAY_DEVICE_EVENT_ADDED. if (virtualDevice != null && (flags & VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP) == 0) { if ((flags & VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP) != 0) { try { final int virtualDeviceId = virtualDevice.getDeviceId(); mLogicalDisplayMapper.associateDisplayDeviceWithVirtualDevice( Loading
services/core/java/com/android/server/display/VirtualDisplayAdapter.java +12 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_ALWAY import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION; Loading @@ -32,6 +33,7 @@ import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_TOUCH import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_TRUSTED; import static com.android.server.display.DisplayDeviceInfo.FLAG_ALWAYS_UNLOCKED; import static com.android.server.display.DisplayDeviceInfo.FLAG_DEVICE_DISPLAY_GROUP; import static com.android.server.display.DisplayDeviceInfo.FLAG_OWN_DISPLAY_GROUP; import static com.android.server.display.DisplayDeviceInfo.FLAG_TOUCH_FEEDBACK_DISABLED; import static com.android.server.display.DisplayDeviceInfo.FLAG_TRUSTED; Loading Loading @@ -466,6 +468,9 @@ public class VirtualDisplayAdapter extends DisplayAdapter { mInfo.flags |= FLAG_OWN_DISPLAY_GROUP; } } if ((mFlags & VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP) != 0) { mInfo.flags |= FLAG_DEVICE_DISPLAY_GROUP; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_SECURE) != 0) { mInfo.flags |= DisplayDeviceInfo.FLAG_SECURE; Loading Loading @@ -498,11 +503,15 @@ public class VirtualDisplayAdapter extends DisplayAdapter { mInfo.flags |= FLAG_TRUSTED; } if ((mFlags & VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED) != 0) { if ((mFlags & VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP) != 0) { if ((mInfo.flags & DisplayDeviceInfo.FLAG_OWN_DISPLAY_GROUP) != 0 || (mFlags & VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP) != 0) { mInfo.flags |= FLAG_ALWAYS_UNLOCKED; } else { Slog.w(TAG, "Ignoring VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED as it " + "requires VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP."); Slog.w( TAG, "Ignoring VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED as it requires" + " VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP or" + " VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP."); } } if ((mFlags & VIRTUAL_DISPLAY_FLAG_TOUCH_FEEDBACK_DISABLED) != 0) { Loading