diff options
3 files changed, 23 insertions, 0 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 9b78ed41206d..923728ffb0f3 100644 --- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java @@ -859,6 +859,11 @@ public class VirtualDeviceManagerService extends SystemService { } @Override + public boolean isValidVirtualDeviceId(int deviceId) { + return mImpl.isValidVirtualDeviceId(deviceId); + } + + @Override public @Nullable String getPersistentIdForDevice(int deviceId) { if (deviceId == Context.DEVICE_ID_DEFAULT) { return VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT; 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 cecde55ef89f..823788f0b249 100644 --- a/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java +++ b/services/core/java/com/android/server/companion/virtual/VirtualDeviceManagerInternal.java @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.companion.virtual.IVirtualDevice; import android.companion.virtual.VirtualDevice; import android.companion.virtual.sensor.VirtualSensor; +import android.content.Context; import android.os.LocaleList; import android.util.ArraySet; @@ -149,6 +150,14 @@ public abstract class VirtualDeviceManagerInternal { public abstract @NonNull ArraySet<Integer> getDisplayIdsForDevice(int deviceId); /** + * Checks whether the passed {@code deviceId} is a valid virtual device ID or not. + * + * <p>{@link Context#DEVICE_ID_DEFAULT} is not valid as it is the ID of the default + * device which is not a virtual device.</p> + */ + public abstract boolean isValidVirtualDeviceId(int deviceId); + + /** * Returns the ID of the device which owns the display with the given ID. * * <p>In case the virtual display ID is invalid or doesn't belong to a virtual device, then 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 9213601a6144..995d1f4d5520 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 @@ -444,18 +444,27 @@ public class VirtualDeviceManagerServiceTest { } @Test + public void isDeviceIdValid_invalidDeviceId_returnsFalse() { + assertThat(mVdm.isValidVirtualDeviceId(DEVICE_ID_INVALID)).isFalse(); + assertThat(mLocalService.isValidVirtualDeviceId(DEVICE_ID_INVALID)).isFalse(); + } + + @Test public void isDeviceIdValid_defaultDeviceId_returnsFalse() { assertThat(mVdm.isValidVirtualDeviceId(DEVICE_ID_DEFAULT)).isFalse(); + assertThat(mLocalService.isValidVirtualDeviceId(DEVICE_ID_DEFAULT)).isFalse(); } @Test public void isDeviceIdValid_validVirtualDeviceId_returnsTrue() { assertThat(mVdm.isValidVirtualDeviceId(mDeviceImpl.getDeviceId())).isTrue(); + assertThat(mLocalService.isValidVirtualDeviceId(mDeviceImpl.getDeviceId())).isTrue(); } @Test public void isDeviceIdValid_nonExistentDeviceId_returnsFalse() { assertThat(mVdm.isValidVirtualDeviceId(mDeviceImpl.getDeviceId() + 1)).isFalse(); + assertThat(mLocalService.isValidVirtualDeviceId(mDeviceImpl.getDeviceId() + 1)).isFalse(); } @Test |