Loading services/core/java/com/android/server/display/VirtualDisplayAdapter.java +7 −2 Original line number Diff line number Diff line Loading @@ -80,6 +80,10 @@ public class VirtualDisplayAdapter extends DisplayAdapter { @VisibleForTesting static final String UNIQUE_ID_PREFIX = "virtual:"; // If any of these bits are set, the display is not in the default display group. private static final int VIRTUAL_DISPLAY_FLAGS_NON_DEFAULT_DISPLAY_GROUP = VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP | VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; // Unique id suffix for virtual displays private static final AtomicInteger sNextUniqueIndex = new AtomicInteger(0); Loading Loading @@ -318,9 +322,10 @@ public class VirtualDisplayAdapter extends DisplayAdapter { } private static boolean isNeverBlank(int flags) { // Private non-mirror displays are never blank and always on. // Private non-mirror displays in the default display group are never blank and always on. return (flags & VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) == 0 && (flags & VIRTUAL_DISPLAY_FLAG_PUBLIC) == 0; && (flags & VIRTUAL_DISPLAY_FLAG_PUBLIC) == 0 && (flags & VIRTUAL_DISPLAY_FLAGS_NON_DEFAULT_DISPLAY_GROUP) == 0; } private final class VirtualDisplayDevice extends DisplayDevice implements DeathRecipient { Loading services/tests/displayservicetests/src/com/android/server/display/VirtualDisplayAdapterTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -371,6 +371,31 @@ public class VirtualDisplayAdapterTest { } } @Test public void ownDisplayGroup_notNeverBlank() { DisplayDevice device = mAdapter.createVirtualDisplayLocked(mMockCallback, /* projection= */ null, /* ownerUid= */ 10, /* packageName= */ "testpackage", "uniqueId", /* surface= */ mSurfaceMock, DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP, mVirtualDisplayConfigMock); DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked(); assertThat(info.state).isEqualTo(Display.STATE_UNKNOWN); assertThat(info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK).isEqualTo(0); } @Test public void deviceDisplayGroup_notNeverBlank() { DisplayDevice device = mAdapter.createVirtualDisplayLocked(mMockCallback, /* projection= */ null, /* ownerUid= */ 10, /* packageName= */ "testpackage", "uniqueId", /* surface= */ mSurfaceMock, DisplayManager.VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP, mVirtualDisplayConfigMock); DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked(); assertThat(info.state).isEqualTo(Display.STATE_UNKNOWN); assertThat(info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK).isEqualTo(0); } @EnableFlags( android.companion.virtualdevice.flags.Flags.FLAG_CORRECT_VIRTUAL_DISPLAY_POWER_STATE) @Test Loading Loading
services/core/java/com/android/server/display/VirtualDisplayAdapter.java +7 −2 Original line number Diff line number Diff line Loading @@ -80,6 +80,10 @@ public class VirtualDisplayAdapter extends DisplayAdapter { @VisibleForTesting static final String UNIQUE_ID_PREFIX = "virtual:"; // If any of these bits are set, the display is not in the default display group. private static final int VIRTUAL_DISPLAY_FLAGS_NON_DEFAULT_DISPLAY_GROUP = VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP | VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP; // Unique id suffix for virtual displays private static final AtomicInteger sNextUniqueIndex = new AtomicInteger(0); Loading Loading @@ -318,9 +322,10 @@ public class VirtualDisplayAdapter extends DisplayAdapter { } private static boolean isNeverBlank(int flags) { // Private non-mirror displays are never blank and always on. // Private non-mirror displays in the default display group are never blank and always on. return (flags & VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) == 0 && (flags & VIRTUAL_DISPLAY_FLAG_PUBLIC) == 0; && (flags & VIRTUAL_DISPLAY_FLAG_PUBLIC) == 0 && (flags & VIRTUAL_DISPLAY_FLAGS_NON_DEFAULT_DISPLAY_GROUP) == 0; } private final class VirtualDisplayDevice extends DisplayDevice implements DeathRecipient { Loading
services/tests/displayservicetests/src/com/android/server/display/VirtualDisplayAdapterTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -371,6 +371,31 @@ public class VirtualDisplayAdapterTest { } } @Test public void ownDisplayGroup_notNeverBlank() { DisplayDevice device = mAdapter.createVirtualDisplayLocked(mMockCallback, /* projection= */ null, /* ownerUid= */ 10, /* packageName= */ "testpackage", "uniqueId", /* surface= */ mSurfaceMock, DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_DISPLAY_GROUP, mVirtualDisplayConfigMock); DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked(); assertThat(info.state).isEqualTo(Display.STATE_UNKNOWN); assertThat(info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK).isEqualTo(0); } @Test public void deviceDisplayGroup_notNeverBlank() { DisplayDevice device = mAdapter.createVirtualDisplayLocked(mMockCallback, /* projection= */ null, /* ownerUid= */ 10, /* packageName= */ "testpackage", "uniqueId", /* surface= */ mSurfaceMock, DisplayManager.VIRTUAL_DISPLAY_FLAG_DEVICE_DISPLAY_GROUP, mVirtualDisplayConfigMock); DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked(); assertThat(info.state).isEqualTo(Display.STATE_UNKNOWN); assertThat(info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK).isEqualTo(0); } @EnableFlags( android.companion.virtualdevice.flags.Flags.FLAG_CORRECT_VIRTUAL_DISPLAY_POWER_STATE) @Test Loading