Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02813c89 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski
Browse files

Add VDM internal API isValidVirtualDeviceId

Useful for other system services that already use
VDMInternal so they won't have to create a VDM instance.

Bug: 287269288
Test: presubmit
Change-Id: I827b54d1301514bc37efea3567bd2a7c36a46802
parent 430500f5
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -858,6 +858,11 @@ public class VirtualDeviceManagerService extends SystemService {
            return mImpl.getDeviceIdForDisplayId(displayId);
        }

        @Override
        public boolean isValidVirtualDeviceId(int deviceId) {
            return mImpl.isValidVirtualDeviceId(deviceId);
        }

        @Override
        public @Nullable String getPersistentIdForDevice(int deviceId) {
            if (deviceId == Context.DEVICE_ID_DEFAULT) {
+9 −0
Original line number Diff line number Diff line
@@ -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;

@@ -148,6 +149,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.
     *
+9 −0
Original line number Diff line number Diff line
@@ -443,19 +443,28 @@ public class VirtualDeviceManagerServiceTest {
                .isEqualTo(mDeviceImpl.getDeviceId());
    }

    @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