summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Komsiyski <vladokom@google.com> 2024-08-05 13:28:53 +0200
committer Vladimir Komsiyski <vladokom@google.com> 2024-08-05 15:53:30 +0200
commit2a1f2f1d69f54cc0fa67ffecabab6ea2e33607d7 (patch)
tree47459163ea2fc1491c3ebded761685dd1892726c
parent2ea93073b58fc5221724c4dbaab5721feda82e23 (diff)
Clean up old VDM display flags
Both are low risk and have been in nextfood for months Bug: n/a Test: presubmit Flag: EXEMPT cleanup Change-Id: I5c044a9a20c7e8f710cfcf350503281b6bcc2c55
-rw-r--r--core/api/test-current.txt2
-rw-r--r--core/java/android/companion/virtual/VirtualDeviceManager.java1
-rw-r--r--core/java/android/companion/virtual/flags.aconfig15
-rw-r--r--packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt4
-rw-r--r--services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java18
-rw-r--r--services/core/java/com/android/server/display/DisplayManagerService.java8
-rw-r--r--services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java39
-rw-r--r--services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java27
9 files changed, 6 insertions, 112 deletions
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 90af25984e6b..ee10cccd7182 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -941,7 +941,7 @@ package android.companion.virtual {
method public int getAudioRecordingSessionId(int);
method public int getDeviceIdForDisplayId(int);
method public int getDevicePolicy(int, int);
- method @FlaggedApi("android.companion.virtual.flags.interactive_screen_mirror") public boolean isVirtualDeviceOwnedMirrorDisplay(int);
+ method public boolean isVirtualDeviceOwnedMirrorDisplay(int);
method public void playSoundEffect(int, int);
}
diff --git a/core/java/android/companion/virtual/VirtualDeviceManager.java b/core/java/android/companion/virtual/VirtualDeviceManager.java
index 8b60580ec114..d07fb2508a49 100644
--- a/core/java/android/companion/virtual/VirtualDeviceManager.java
+++ b/core/java/android/companion/virtual/VirtualDeviceManager.java
@@ -531,7 +531,6 @@ public final class VirtualDeviceManager {
*
* @hide
*/
- @FlaggedApi(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR)
@TestApi
public boolean isVirtualDeviceOwnedMirrorDisplay(int displayId) {
if (mService == null) {
diff --git a/core/java/android/companion/virtual/flags.aconfig b/core/java/android/companion/virtual/flags.aconfig
index 91586b6bfae2..fc9c94dd5b0f 100644
--- a/core/java/android/companion/virtual/flags.aconfig
+++ b/core/java/android/companion/virtual/flags.aconfig
@@ -35,13 +35,6 @@ flag {
}
flag {
- name: "consistent_display_flags"
- namespace: "virtual_devices"
- description: "Make virtual display flags consistent with display manager"
- bug: "300905478"
-}
-
-flag {
name: "vdm_custom_ime"
is_exported: true
namespace: "virtual_devices"
@@ -89,14 +82,6 @@ flag {
}
flag {
- name: "interactive_screen_mirror"
- is_exported: true
- namespace: "virtual_devices"
- description: "Enable interactive screen mirroring using Virtual Devices"
- bug: "292212199"
-}
-
-flag {
name: "virtual_stylus"
is_exported: true
namespace: "virtual_devices"
diff --git a/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt b/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt
index e4b290d7d10e..15a3cbdb8072 100644
--- a/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt
+++ b/packages/SystemUI/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractor.kt
@@ -17,7 +17,6 @@
package com.android.systemui.display.domain.interactor
import android.companion.virtual.VirtualDeviceManager
-import android.companion.virtual.flags.Flags
import android.view.Display
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Background
@@ -155,8 +154,7 @@ constructor(
}
private fun isVirtualDeviceOwnedMirrorDisplay(display: Display): Boolean {
- return Flags.interactiveScreenMirror() &&
- virtualDeviceManager != null &&
+ return virtualDeviceManager != null &&
virtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(display.displayId)
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt
index fd9964f938c8..a2b50fd2ec17 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/display/domain/interactor/ConnectedDisplayInteractorTest.kt
@@ -17,8 +17,6 @@
package com.android.systemui.display.domain.interactor
import android.companion.virtual.VirtualDeviceManager
-import android.companion.virtual.flags.Flags.FLAG_INTERACTIVE_SCREEN_MIRROR
-import android.platform.test.annotations.EnableFlags
import android.testing.TestableLooper
import android.view.Display
import android.view.Display.TYPE_EXTERNAL
@@ -160,7 +158,6 @@ class ConnectedDisplayInteractorTest : SysuiTestCase() {
}
@Test
- @EnableFlags(FLAG_INTERACTIVE_SCREEN_MIRROR)
fun displayState_virtualDeviceOwnedMirrorVirtualDisplay_connected() =
testScope.runTest {
whenever(virtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(anyInt()))
@@ -183,7 +180,6 @@ class ConnectedDisplayInteractorTest : SysuiTestCase() {
}
@Test
- @EnableFlags(FLAG_INTERACTIVE_SCREEN_MIRROR)
fun virtualDeviceOwnedMirrorVirtualDisplay_emitsConnectedDisplayAddition() =
testScope.runTest {
whenever(virtualDeviceManager.isVirtualDeviceOwnedMirrorDisplay(anyInt()))
diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
index 2db54435199b..1be352e8e3da 100644
--- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
+++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
@@ -137,11 +137,6 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
| DisplayManager.VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH
| DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS;
- private static final int DEFAULT_VIRTUAL_DISPLAY_FLAGS_PRE_VIC =
- DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC
- | DisplayManager.VIRTUAL_DISPLAY_FLAG_ROTATES_WITH_CONTENT
- | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY;
-
private static final String PERSISTENT_ID_PREFIX_CDM_ASSOCIATION = "companion:";
/**
@@ -373,9 +368,6 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
}
int flags = DEFAULT_VIRTUAL_DISPLAY_FLAGS;
- if (!Flags.consistentDisplayFlags()) {
- flags |= DEFAULT_VIRTUAL_DISPLAY_FLAGS_PRE_VIC;
- }
if (mParams.getLockState() == VirtualDeviceParams.LOCK_STATE_ALWAYS_UNLOCKED) {
flags |= DisplayManager.VIRTUAL_DISPLAY_FLAG_ALWAYS_UNLOCKED;
}
@@ -1254,10 +1246,6 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
// as the virtual display doesn't have any focused windows. Hence, call this for
// associating any input device to the source display if the input device emits any key events.
private int getTargetDisplayIdForInput(int displayId) {
- if (!Flags.interactiveScreenMirror()) {
- return displayId;
- }
-
DisplayManagerInternal displayManager = LocalServices.getService(
DisplayManagerInternal.class);
int mirroredDisplayId = displayManager.getDisplayIdToMirror(displayId);
@@ -1313,9 +1301,9 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
int displayId;
displayId = mDisplayManagerInternal.createVirtualDisplay(virtualDisplayConfig, callback,
this, gwpc, packageName);
- gwpc.setDisplayId(displayId, /* isMirrorDisplay= */ Flags.interactiveScreenMirror()
- && mDisplayManagerInternal.getDisplayIdToMirror(displayId)
- != Display.INVALID_DISPLAY);
+ boolean isMirrorDisplay =
+ mDisplayManagerInternal.getDisplayIdToMirror(displayId) != Display.INVALID_DISPLAY;
+ gwpc.setDisplayId(displayId, isMirrorDisplay);
boolean showPointer;
synchronized (mVirtualDeviceLock) {
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 9e905abd78ed..55a6ce7142f3 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -64,7 +64,6 @@ import android.app.AppOpsManager;
import android.app.compat.CompatChanges;
import android.companion.virtual.IVirtualDevice;
import android.companion.virtual.VirtualDeviceManager;
-import android.companion.virtual.flags.Flags;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledSince;
import android.content.BroadcastReceiver;
@@ -1633,8 +1632,7 @@ public final class DisplayManagerService extends SystemService {
&& (flags & VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) != 0) {
// Only a valid media projection or a virtual device can create a mirror virtual
// display.
- if (!canProjectVideo(projection)
- && !isMirroringSupportedByVirtualDevice(virtualDevice)) {
+ if (!canProjectVideo(projection) && virtualDevice == null) {
throw new SecurityException("Requires CAPTURE_VIDEO_OUTPUT or "
+ "CAPTURE_SECURE_VIDEO_OUTPUT permission, or an appropriate "
+ "MediaProjection token in order to create a screen sharing virtual "
@@ -1896,10 +1894,6 @@ public final class DisplayManagerService extends SystemService {
return -1;
}
- private static boolean isMirroringSupportedByVirtualDevice(IVirtualDevice virtualDevice) {
- return Flags.interactiveScreenMirror() && virtualDevice != null;
- }
-
private void resizeVirtualDisplayInternal(IBinder appToken,
int width, int height, int densityDpi) {
synchronized (mSyncRoot) {
diff --git a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
index 2b03dc4f78ad..bbf2ecbb9380 100644
--- a/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
+++ b/services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java
@@ -69,7 +69,6 @@ import android.app.PropertyInvalidatedCache;
import android.companion.virtual.IVirtualDevice;
import android.companion.virtual.IVirtualDeviceManager;
import android.companion.virtual.VirtualDeviceManager;
-import android.companion.virtual.flags.Flags;
import android.compat.testing.PlatformCompatChangeRule;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -374,7 +373,6 @@ public class DisplayManagerServiceTest {
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
when(mMockFlags.isConnectedDisplayManagementEnabled()).thenReturn(false);
- mSetFlagsRule.disableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
mLocalServiceKeeperRule.overrideLocalService(
InputManagerInternal.class, mMockInputManagerInternal);
@@ -1298,44 +1296,11 @@ public class DisplayManagerServiceTest {
}
/**
- * Tests that it's not allowed to create an auto-mirror virtual display when display mirroring
- * is not supported in a virtual device.
- */
- @Test
- public void createAutoMirrorDisplay_virtualDeviceDoesntSupportMirroring_throwsException()
- throws Exception {
- mSetFlagsRule.disableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
- DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
- DisplayManagerInternal localService = displayManager.new LocalService();
- registerDefaultDisplays(displayManager);
- when(mMockAppToken.asBinder()).thenReturn(mMockAppToken);
- when(mContext.checkCallingPermission(CAPTURE_VIDEO_OUTPUT)).thenReturn(
- PackageManager.PERMISSION_DENIED);
- IVirtualDevice virtualDevice = mock(IVirtualDevice.class);
- when(virtualDevice.getDeviceId()).thenReturn(1);
- when(mIVirtualDeviceManager.isValidVirtualDeviceId(1)).thenReturn(true);
-
- final VirtualDisplayConfig.Builder builder =
- new VirtualDisplayConfig.Builder(VIRTUAL_DISPLAY_NAME, 600, 800, 320)
- .setFlags(VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR)
- .setUniqueId("uniqueId --- mirror display");
- assertThrows(SecurityException.class, () -> {
- localService.createVirtualDisplay(
- builder.build(),
- mMockAppToken /* callback */,
- virtualDevice /* virtualDeviceToken */,
- mock(DisplayWindowPolicyController.class),
- PACKAGE_NAME);
- });
- }
-
- /**
* Tests that the virtual display is added to the default display group when created with
* VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR using a virtual device.
*/
@Test
public void createAutoMirrorVirtualDisplay_addsDisplayToDefaultDisplayGroup() throws Exception {
- mSetFlagsRule.enableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
DisplayManagerInternal localService = displayManager.new LocalService();
registerDefaultDisplays(displayManager);
@@ -1368,7 +1333,6 @@ public class DisplayManagerServiceTest {
*/
@Test
public void createAutoMirrorVirtualDisplay_mirrorsDefaultDisplay() throws Exception {
- mSetFlagsRule.enableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
DisplayManagerInternal localService = displayManager.new LocalService();
registerDefaultDisplays(displayManager);
@@ -1400,7 +1364,6 @@ public class DisplayManagerServiceTest {
*/
@Test
public void createOwnContentOnlyVirtualDisplay_doesNotMirrorAnyDisplay() throws Exception {
- mSetFlagsRule.enableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
DisplayManagerInternal localService = displayManager.new LocalService();
registerDefaultDisplays(displayManager);
@@ -1436,7 +1399,6 @@ public class DisplayManagerServiceTest {
*/
@Test
public void createAutoMirrorVirtualDisplay_flagAlwaysUnlockedNotSet() throws Exception {
- mSetFlagsRule.enableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
DisplayManagerInternal localService = displayManager.new LocalService();
registerDefaultDisplays(displayManager);
@@ -1472,7 +1434,6 @@ public class DisplayManagerServiceTest {
*/
@Test
public void createAutoMirrorVirtualDisplay_flagPresentationNotSet() throws Exception {
- mSetFlagsRule.enableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector);
DisplayManagerInternal localService = displayManager.new LocalService();
registerDefaultDisplays(displayManager);
diff --git a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
index c2882124e6e3..4d067f6bfc62 100644
--- a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
@@ -62,7 +62,6 @@ import android.companion.virtual.VirtualDeviceManager;
import android.companion.virtual.VirtualDeviceParams;
import android.companion.virtual.audio.IAudioConfigChangedCallback;
import android.companion.virtual.audio.IAudioRoutingCallback;
-import android.companion.virtual.flags.Flags;
import android.companion.virtual.sensor.VirtualSensor;
import android.companion.virtual.sensor.VirtualSensorCallback;
import android.companion.virtual.sensor.VirtualSensorConfig;
@@ -1686,7 +1685,6 @@ public class VirtualDeviceManagerServiceTest {
@Test
public void openNonBlockedAppOnMirrorDisplay_flagEnabled_cannotBeLaunched() {
- mSetFlagsRule.enableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
when(mDisplayManagerInternalMock.getDisplayIdToMirror(anyInt()))
.thenReturn(Display.DEFAULT_DISPLAY);
addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
@@ -1711,31 +1709,6 @@ public class VirtualDeviceManagerServiceTest {
}
@Test
- public void openNonBlockedAppOnMirrorDisplay_flagDisabled_launchesActivity() {
- mSetFlagsRule.disableFlags(Flags.FLAG_INTERACTIVE_SCREEN_MIRROR);
- when(mDisplayManagerInternalMock.getDisplayIdToMirror(anyInt()))
- .thenReturn(Display.DEFAULT_DISPLAY);
- addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);
- GenericWindowPolicyController gwpc = mDeviceImpl.getDisplayWindowPolicyControllerForTest(
- DISPLAY_ID_1);
- doNothing().when(mContext).startActivityAsUser(any(), any(), any());
-
- ActivityInfo activityInfo = getActivityInfo(
- NONBLOCKED_APP_PACKAGE_NAME,
- NONBLOCKED_APP_PACKAGE_NAME,
- /* displayOnRemoteDevices */ true,
- /* targetDisplayCategory */ null);
- assertThat(gwpc.canActivityBeLaunched(activityInfo, null,
- WindowConfiguration.WINDOWING_MODE_FULLSCREEN, DISPLAY_ID_1, /* isNewTask= */ false,
- /* isResultExpected = */ false, /* intentSender= */ null))
- .isTrue();
- Intent blockedAppIntent = BlockedAppStreamingActivity.createIntent(
- activityInfo, mAssociationInfo.getDisplayName());
- verify(mContext, never()).startActivityAsUser(argThat(intent ->
- intent.filterEquals(blockedAppIntent)), any(), any());
- }
-
- @Test
public void registerRunningAppsChangedListener_onRunningAppsChanged_listenersNotified() {
ArraySet<Integer> uids = new ArraySet<>(Arrays.asList(UID_1, UID_2));
addVirtualDisplay(mDeviceImpl, DISPLAY_ID_1);