From 905eef0783ce45ae66274870477b7b70659153d1 Mon Sep 17 00:00:00 2001 From: Vladimir Komsiyski Date: Fri, 9 Dec 2022 14:17:05 +0100 Subject: [PATCH] Clean up VirtualDeviceManagerInternal. Remove a couple of dead methods and refactor the service tests. Bug: 261972869 Test: atest VirtualDeviceManagerServiceTest Change-Id: I2b5ad61257708976ecf63882a4a515780f337353 --- .../virtual/VirtualDeviceManagerService.java | 37 +++------ .../virtual/VirtualDeviceManagerInternal.java | 17 ---- .../VirtualDeviceManagerServiceTest.java | 81 +++++++------------ 3 files changed, 37 insertions(+), 98 deletions(-) diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java index 48ca0b3abef6d..f07d2855c986f 100644 --- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java @@ -386,7 +386,15 @@ public class VirtualDeviceManagerService extends SystemService { @Override // BinderCall @VirtualDeviceParams.DevicePolicy public int getDevicePolicy(int deviceId, @VirtualDeviceParams.PolicyType int policyType) { - return mLocalService.getDevicePolicy(deviceId, policyType); + synchronized (mVirtualDeviceManagerLock) { + for (int i = 0; i < mVirtualDevices.size(); i++) { + final VirtualDeviceImpl device = mVirtualDevices.valueAt(i); + if (device.getDeviceId() == deviceId) { + return device.getDevicePolicy(policyType); + } + } + } + return VirtualDeviceParams.DEVICE_POLICY_DEFAULT; } @@ -486,20 +494,6 @@ public class VirtualDeviceManagerService extends SystemService { } } - @Override - @VirtualDeviceParams.DevicePolicy - public int getDevicePolicy(int deviceId, @VirtualDeviceParams.PolicyType int policyType) { - synchronized (mVirtualDeviceManagerLock) { - for (int i = 0; i < mVirtualDevices.size(); i++) { - final VirtualDeviceImpl device = mVirtualDevices.valueAt(i); - if (device.getDeviceId() == deviceId) { - return device.getDevicePolicy(policyType); - } - } - } - return VirtualDeviceParams.DEVICE_POLICY_DEFAULT; - } - @Override public void onVirtualDisplayCreated(int displayId) { final VirtualDisplayListener[] listeners; @@ -560,19 +554,6 @@ public class VirtualDeviceManagerService extends SystemService { return ((VirtualDeviceImpl) virtualDevice).getBaseVirtualDisplayFlags(); } - @Override - public boolean isAppOwnerOfAnyVirtualDevice(int uid) { - synchronized (mVirtualDeviceManagerLock) { - int size = mVirtualDevices.size(); - for (int i = 0; i < size; i++) { - if (mVirtualDevices.valueAt(i).getOwnerUid() == uid) { - return true; - } - } - return false; - } - } - @Override public boolean isAppRunningOnAnyVirtualDevice(int uid) { synchronized (mVirtualDeviceManagerLock) { diff --git a/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java b/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java index d2e572f2f979f..218be9de5ffbf 100644 --- a/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java +++ b/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java @@ -18,7 +18,6 @@ package com.android.server.companion.virtual; import android.annotation.NonNull; import android.companion.virtual.IVirtualDevice; -import android.companion.virtual.VirtualDeviceParams; import java.util.Set; @@ -93,12 +92,6 @@ public abstract class VirtualDeviceManagerInternal { */ public abstract int getBaseVirtualDisplayFlags(IVirtualDevice virtualDevice); - /** - * Returns true if the given {@code uid} is the owner of any virtual devices that are - * currently active. - */ - public abstract boolean isAppOwnerOfAnyVirtualDevice(int uid); - /** * Returns true if the given {@code uid} is currently running on any virtual devices. This is * determined by whether the app has any activities in the task stack on a virtual-device-owned @@ -110,14 +103,4 @@ public abstract class VirtualDeviceManagerInternal { * Returns true if the {@code displayId} is owned by any virtual device */ public abstract boolean isDisplayOwnedByAnyVirtualDevice(int displayId); - - /** - * Returns the device policy for the given virtual device and policy type. - * - *

In case the virtual device identifier is not valid, or there's no explicitly specified - * policy for that device and policy type, then - * {@link VirtualDeviceParams#DEVICE_POLICY_DEFAULT} is returned. - */ - public abstract @VirtualDeviceParams.DevicePolicy int getDevicePolicy( - int deviceId, @VirtualDeviceParams.PolicyType int policyType); } 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 d2cf15971335a..ded8179d765ee 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 @@ -16,6 +16,8 @@ package com.android.server.companion.virtual; +import static android.companion.virtual.VirtualDeviceManager.DEFAULT_DEVICE_ID; +import static android.companion.virtual.VirtualDeviceManager.INVALID_DEVICE_ID; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_SENSORS; @@ -47,7 +49,6 @@ import android.app.WindowConfiguration; import android.app.admin.DevicePolicyManager; import android.companion.AssociationInfo; import android.companion.virtual.IVirtualDeviceActivityListener; -import android.companion.virtual.VirtualDeviceManager; import android.companion.virtual.VirtualDeviceParams; import android.companion.virtual.audio.IAudioConfigChangedCallback; import android.companion.virtual.audio.IAudioRoutingCallback; @@ -179,6 +180,7 @@ public class VirtualDeviceManagerServiceTest { private AssociationInfo mAssociationInfo; private VirtualDeviceManagerService mVdms; private VirtualDeviceManagerInternal mLocalService; + private VirtualDeviceManagerService.VirtualDeviceManagerImpl mVdm; @Mock private InputController.NativeWrapper mNativeWrapperMock; @Mock @@ -304,80 +306,68 @@ public class VirtualDeviceManagerServiceTest { mVdms = new VirtualDeviceManagerService(mContext); mLocalService = mVdms.getLocalServiceInstance(); + mVdm = mVdms.new VirtualDeviceManagerImpl(); - mDeviceImpl = createVirtualDevice(VIRTUAL_DEVICE_ID); + VirtualDeviceParams params = new VirtualDeviceParams + .Builder() + .setBlockedActivities(getBlockedActivities()) + .build(); + mDeviceImpl = new VirtualDeviceImpl(mContext, + mAssociationInfo, new Binder(), /* ownerUid= */ 0, VIRTUAL_DEVICE_ID, + mInputController, mSensorController, (int associationId) -> {}, + mPendingTrampolineCallback, mActivityListener, mRunningAppsChangedCallback, params); + mVdms.addVirtualDevice(mDeviceImpl); } @Test public void getDeviceIdForDisplayId_invalidDisplayId_returnsDefault() { - VirtualDeviceManagerService.VirtualDeviceManagerImpl vdm = - mVdms.new VirtualDeviceManagerImpl(); - - assertThat( - vdm.getDeviceIdForDisplayId(Display.INVALID_DISPLAY)) - .isEqualTo(VirtualDeviceManager.DEFAULT_DEVICE_ID); + assertThat(mVdm.getDeviceIdForDisplayId(Display.INVALID_DISPLAY)) + .isEqualTo(DEFAULT_DEVICE_ID); } @Test public void getDeviceIdForDisplayId_defaultDisplayId_returnsDefault() { - VirtualDeviceManagerService.VirtualDeviceManagerImpl vdm = - mVdms.new VirtualDeviceManagerImpl(); - - assertThat( - vdm.getDeviceIdForDisplayId(Display.DEFAULT_DISPLAY)) - .isEqualTo(VirtualDeviceManager.DEFAULT_DEVICE_ID); + assertThat(mVdm.getDeviceIdForDisplayId(Display.DEFAULT_DISPLAY)) + .isEqualTo(DEFAULT_DEVICE_ID); } @Test public void getDeviceIdForDisplayId_nonExistentDisplayId_returnsDefault() { - VirtualDeviceManagerService.VirtualDeviceManagerImpl vdm = - mVdms.new VirtualDeviceManagerImpl(); - int nonExistentDisplayId = 999; + mDeviceImpl.mVirtualDisplayIds.remove(DISPLAY_ID); - assertThat( - vdm.getDeviceIdForDisplayId(nonExistentDisplayId)) - .isEqualTo(VirtualDeviceManager.DEFAULT_DEVICE_ID); + assertThat(mVdm.getDeviceIdForDisplayId(DISPLAY_ID)) + .isEqualTo(DEFAULT_DEVICE_ID); } @Test public void getDeviceIdForDisplayId_withValidVirtualDisplayId_returnsDeviceId() { - VirtualDeviceManagerService.VirtualDeviceManagerImpl vdm = - mVdms.new VirtualDeviceManagerImpl(); - VirtualDeviceImpl virtualDevice = createVirtualDevice(/* virtualDeviceId */ 1000); - virtualDevice.mVirtualDisplayIds.add(DISPLAY_ID); + mDeviceImpl.mVirtualDisplayIds.add(DISPLAY_ID); - assertThat( - vdm.getDeviceIdForDisplayId(DISPLAY_ID)) - .isEqualTo(1000); + assertThat(mVdm.getDeviceIdForDisplayId(DISPLAY_ID)) + .isEqualTo(mDeviceImpl.getDeviceId()); } @Test public void getDevicePolicy_invalidDeviceId_returnsDefault() { - assertThat( - mLocalService.getDevicePolicy( - VirtualDeviceManager.INVALID_DEVICE_ID, POLICY_TYPE_SENSORS)) + assertThat(mVdm.getDevicePolicy(INVALID_DEVICE_ID, POLICY_TYPE_SENSORS)) .isEqualTo(DEVICE_POLICY_DEFAULT); } @Test public void getDevicePolicy_defaultDeviceId_returnsDefault() { - assertThat( - mLocalService.getDevicePolicy( - VirtualDeviceManager.DEFAULT_DEVICE_ID, POLICY_TYPE_SENSORS)) + assertThat(mVdm.getDevicePolicy(DEFAULT_DEVICE_ID, POLICY_TYPE_SENSORS)) .isEqualTo(DEVICE_POLICY_DEFAULT); } @Test public void getDevicePolicy_nonExistentDeviceId_returnsDefault() { - assertThat( - mLocalService.getDevicePolicy(mDeviceImpl.getDeviceId() + 1, POLICY_TYPE_SENSORS)) + assertThat(mVdm.getDevicePolicy(mDeviceImpl.getDeviceId() + 1, POLICY_TYPE_SENSORS)) .isEqualTo(DEVICE_POLICY_DEFAULT); } @Test public void getDevicePolicy_unspecifiedPolicy_returnsDefault() { - assertThat( - mLocalService.getDevicePolicy(mDeviceImpl.getDeviceId(), POLICY_TYPE_SENSORS)) + assertThat(mVdm.getDevicePolicy(mDeviceImpl.getDeviceId(), POLICY_TYPE_SENSORS)) .isEqualTo(DEVICE_POLICY_DEFAULT); } @@ -394,8 +384,7 @@ public class VirtualDeviceManagerServiceTest { mPendingTrampolineCallback, mActivityListener, mRunningAppsChangedCallback, params); mVdms.addVirtualDevice(mDeviceImpl); - assertThat( - mLocalService.getDevicePolicy(mDeviceImpl.getDeviceId(), POLICY_TYPE_SENSORS)) + assertThat(mVdm.getDevicePolicy(mDeviceImpl.getDeviceId(), POLICY_TYPE_SENSORS)) .isEqualTo(DEVICE_POLICY_CUSTOM); } @@ -1196,18 +1185,4 @@ public class VirtualDeviceManagerServiceTest { verify(mContext).startActivityAsUser(argThat(intent -> intent.filterEquals(blockedAppIntent)), any(), any()); } - - private VirtualDeviceImpl createVirtualDevice(int virtualDeviceId) { - VirtualDeviceParams params = new VirtualDeviceParams - .Builder() - .setBlockedActivities(getBlockedActivities()) - .build(); - VirtualDeviceImpl virtualDeviceImpl = new VirtualDeviceImpl(mContext, - mAssociationInfo, new Binder(), /* ownerUid */ 0, virtualDeviceId, - mInputController, mSensorController, (int associationId) -> {}, - mPendingTrampolineCallback, mActivityListener, mRunningAppsChangedCallback, params); - mVdms.addVirtualDevice(virtualDeviceImpl); - return virtualDeviceImpl; - } - }