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

Commit bc5c1da7 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski
Browse files

Switch the VDM internal API from associationId to persistentId.

Bug: 286363466
Test: atest VirtualDeviceManagerServiceTest
Change-Id: Ic14a940eb6932b824974faa8cd829cf0ab2d7124
parent 08f204f5
Loading
Loading
Loading
Loading
+0 −7
Original line number Original line Diff line number Diff line
@@ -102,13 +102,6 @@ public final class VirtualDeviceManager {
    public static final String EXTRA_VIRTUAL_DEVICE_ID =
    public static final String EXTRA_VIRTUAL_DEVICE_ID =
            "android.companion.virtual.extra.VIRTUAL_DEVICE_ID";
            "android.companion.virtual.extra.VIRTUAL_DEVICE_ID";


    /**
     * A representation of an invalid CDM association ID. Association IDs must be positive.
     *
     * @hide
     */
    public static final int ASSOCIATION_ID_INVALID = -1;

    /** @hide */
    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(
    @IntDef(
+2 −4
Original line number Original line Diff line number Diff line
@@ -687,14 +687,12 @@ public class VirtualDeviceManagerService extends SystemService {
        }
        }


        @Override
        @Override
        public int getAssociationIdForDevice(int deviceId) {
        public @Nullable String getPersistentIdForDevice(int deviceId) {
            VirtualDeviceImpl virtualDevice;
            VirtualDeviceImpl virtualDevice;
            synchronized (mVirtualDeviceManagerLock) {
            synchronized (mVirtualDeviceManagerLock) {
                virtualDevice = mVirtualDevices.get(deviceId);
                virtualDevice = mVirtualDevices.get(deviceId);
            }
            }
            return virtualDevice == null
            return virtualDevice == null ? null : virtualDevice.getPersistentDeviceId();
                    ? VirtualDeviceManager.ASSOCIATION_ID_INVALID
                    : virtualDevice.getAssociationId();
        }
        }


        @Override
        @Override
+6 −5
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.companion.virtual;
import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
import android.companion.virtual.IVirtualDevice;
import android.companion.virtual.IVirtualDevice;
import android.companion.virtual.VirtualDevice;
import android.companion.virtual.sensor.VirtualSensor;
import android.companion.virtual.sensor.VirtualSensor;
import android.os.LocaleList;
import android.os.LocaleList;
import android.util.ArraySet;
import android.util.ArraySet;
@@ -158,12 +159,12 @@ public abstract class VirtualDeviceManagerInternal {
    public abstract @NonNull ArraySet<Integer> getDisplayIdsForDevice(int deviceId);
    public abstract @NonNull ArraySet<Integer> getDisplayIdsForDevice(int deviceId);


    /**
    /**
     * Gets the CDM association ID for the VirtualDevice with the given device ID.
     * Gets the persistent ID for the VirtualDevice with the given device ID.
     *
     *
     * @param deviceId which device we're asking about
     * @param deviceId which device we're asking about
     * @return the CDM association ID for this device, or
     * @return the persistent ID for this device, or {@code null} if no such ID exists.
     *   {@link android.companion.virtual.VirtualDeviceManager#ASSOCIATION_ID_INVALID} if no such
     *
     *   association exists.
     * @see VirtualDevice#getPersistentDeviceId()
     */
     */
    public abstract int getAssociationIdForDevice(int deviceId);
    public abstract @Nullable String getPersistentIdForDevice(int deviceId);
}
}
+10 −13
Original line number Original line Diff line number Diff line
@@ -16,7 +16,6 @@


package com.android.server.companion.virtual;
package com.android.server.companion.virtual;


import static android.companion.virtual.VirtualDeviceManager.ASSOCIATION_ID_INVALID;
import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM;
import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM;
import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT;
import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;
@@ -1714,19 +1713,16 @@ public class VirtualDeviceManagerServiceTest {
    }
    }


    @Test
    @Test
    public void getAssociationIdForDevice_invalidDeviceId_returnsInvalidAssociationId() {
    public void getPersistentIdForDevice_invalidDeviceId_returnsNull() {
        assertThat(mLocalService.getAssociationIdForDevice(DEVICE_ID_INVALID))
        assertThat(mLocalService.getPersistentIdForDevice(DEVICE_ID_INVALID)).isNull();
                .isEqualTo(ASSOCIATION_ID_INVALID);
        assertThat(mLocalService.getPersistentIdForDevice(DEVICE_ID_DEFAULT)).isNull();
        assertThat(mLocalService.getAssociationIdForDevice(DEVICE_ID_DEFAULT))
        assertThat(mLocalService.getPersistentIdForDevice(VIRTUAL_DEVICE_ID_2)).isNull();
                .isEqualTo(ASSOCIATION_ID_INVALID);
        assertThat(mLocalService.getAssociationIdForDevice(VIRTUAL_DEVICE_ID_2))
                .isEqualTo(ASSOCIATION_ID_INVALID);
    }
    }


    @Test
    @Test
    public void getAssociationIdForDevice_returnsCorrectAssociationId() {
    public void getPersistentIdForDevice_returnsCorrectId() {
        assertThat(mLocalService.getAssociationIdForDevice(VIRTUAL_DEVICE_ID_1))
        assertThat(mLocalService.getPersistentIdForDevice(VIRTUAL_DEVICE_ID_1))
                .isEqualTo(mAssociationInfo.getId());
                .isEqualTo(mDeviceImpl.getPersistentDeviceId());
    }
    }


    private VirtualDeviceImpl createVirtualDevice(int virtualDeviceId, int ownerUid) {
    private VirtualDeviceImpl createVirtualDevice(int virtualDeviceId, int ownerUid) {
@@ -1740,12 +1736,13 @@ public class VirtualDeviceManagerServiceTest {
            VirtualDeviceParams params) {
            VirtualDeviceParams params) {
        VirtualDeviceImpl virtualDeviceImpl = new VirtualDeviceImpl(mContext,
        VirtualDeviceImpl virtualDeviceImpl = new VirtualDeviceImpl(mContext,
                mAssociationInfo, mVdms, new Binder(), ownerUid, virtualDeviceId,
                mAssociationInfo, mVdms, new Binder(), ownerUid, virtualDeviceId,
                mInputController, mCameraAccessController
                mInputController, mCameraAccessController,
                /* onDeviceCloseListener= */ /*deviceId -> mVdms.removeVirtualDevice(deviceId)*/,
                mPendingTrampolineCallback, mActivityListener, mSoundEffectListener,
                mPendingTrampolineCallback, mActivityListener, mSoundEffectListener,
                mRunningAppsChangedCallback, params, new DisplayManagerGlobal(mIDisplayManager));
                mRunningAppsChangedCallback, params, new DisplayManagerGlobal(mIDisplayManager));
        mVdms.addVirtualDevice(virtualDeviceImpl);
        mVdms.addVirtualDevice(virtualDeviceImpl);
        assertThat(virtualDeviceImpl.getAssociationId()).isEqualTo(mAssociationInfo.getId());
        assertThat(virtualDeviceImpl.getAssociationId()).isEqualTo(mAssociationInfo.getId());
        assertThat(virtualDeviceImpl.getPersistentDeviceId())
                .isEqualTo("companion:" + mAssociationInfo.getId());
        return virtualDeviceImpl;
        return virtualDeviceImpl;
    }
    }