Switch the VDM internal API from associationId to persistentId.

Bug: 286363466
Test: atest VirtualDeviceManagerServiceTest
Change-Id: Ic14a940eb6932b824974faa8cd829cf0ab2d7124
This commit is contained in:
Vladimir Komsiyski
2023-07-25 09:28:29 +02:00
parent 08f204f597
commit bc5c1da783
4 changed files with 18 additions and 29 deletions

View File

@@ -102,13 +102,6 @@ public final class VirtualDeviceManager {
public static final String 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 */
@Retention(RetentionPolicy.SOURCE)
@IntDef(

View File

@@ -687,14 +687,12 @@ public class VirtualDeviceManagerService extends SystemService {
}
@Override
public int getAssociationIdForDevice(int deviceId) {
public @Nullable String getPersistentIdForDevice(int deviceId) {
VirtualDeviceImpl virtualDevice;
synchronized (mVirtualDeviceManagerLock) {
virtualDevice = mVirtualDevices.get(deviceId);
}
return virtualDevice == null
? VirtualDeviceManager.ASSOCIATION_ID_INVALID
: virtualDevice.getAssociationId();
return virtualDevice == null ? null : virtualDevice.getPersistentDeviceId();
}
@Override

View File

@@ -19,6 +19,7 @@ package com.android.server.companion.virtual;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.companion.virtual.IVirtualDevice;
import android.companion.virtual.VirtualDevice;
import android.companion.virtual.sensor.VirtualSensor;
import android.os.LocaleList;
import android.util.ArraySet;
@@ -158,12 +159,12 @@ public abstract class VirtualDeviceManagerInternal {
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
* @return the CDM association ID for this device, or
* {@link android.companion.virtual.VirtualDeviceManager#ASSOCIATION_ID_INVALID} if no such
* association exists.
* @return the persistent ID for this device, or {@code null} if no such ID exists.
*
* @see VirtualDevice#getPersistentDeviceId()
*/
public abstract int getAssociationIdForDevice(int deviceId);
public abstract @Nullable String getPersistentIdForDevice(int deviceId);
}

View File

@@ -16,7 +16,6 @@
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_DEFAULT;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;
@@ -1714,19 +1713,16 @@ public class VirtualDeviceManagerServiceTest {
}
@Test
public void getAssociationIdForDevice_invalidDeviceId_returnsInvalidAssociationId() {
assertThat(mLocalService.getAssociationIdForDevice(DEVICE_ID_INVALID))
.isEqualTo(ASSOCIATION_ID_INVALID);
assertThat(mLocalService.getAssociationIdForDevice(DEVICE_ID_DEFAULT))
.isEqualTo(ASSOCIATION_ID_INVALID);
assertThat(mLocalService.getAssociationIdForDevice(VIRTUAL_DEVICE_ID_2))
.isEqualTo(ASSOCIATION_ID_INVALID);
public void getPersistentIdForDevice_invalidDeviceId_returnsNull() {
assertThat(mLocalService.getPersistentIdForDevice(DEVICE_ID_INVALID)).isNull();
assertThat(mLocalService.getPersistentIdForDevice(DEVICE_ID_DEFAULT)).isNull();
assertThat(mLocalService.getPersistentIdForDevice(VIRTUAL_DEVICE_ID_2)).isNull();
}
@Test
public void getAssociationIdForDevice_returnsCorrectAssociationId() {
assertThat(mLocalService.getAssociationIdForDevice(VIRTUAL_DEVICE_ID_1))
.isEqualTo(mAssociationInfo.getId());
public void getPersistentIdForDevice_returnsCorrectId() {
assertThat(mLocalService.getPersistentIdForDevice(VIRTUAL_DEVICE_ID_1))
.isEqualTo(mDeviceImpl.getPersistentDeviceId());
}
private VirtualDeviceImpl createVirtualDevice(int virtualDeviceId, int ownerUid) {
@@ -1740,12 +1736,13 @@ public class VirtualDeviceManagerServiceTest {
VirtualDeviceParams params) {
VirtualDeviceImpl virtualDeviceImpl = new VirtualDeviceImpl(mContext,
mAssociationInfo, mVdms, new Binder(), ownerUid, virtualDeviceId,
mInputController, mCameraAccessController
/* onDeviceCloseListener= */ /*deviceId -> mVdms.removeVirtualDevice(deviceId)*/,
mInputController, mCameraAccessController,
mPendingTrampolineCallback, mActivityListener, mSoundEffectListener,
mRunningAppsChangedCallback, params, new DisplayManagerGlobal(mIDisplayManager));
mVdms.addVirtualDevice(virtualDeviceImpl);
assertThat(virtualDeviceImpl.getAssociationId()).isEqualTo(mAssociationInfo.getId());
assertThat(virtualDeviceImpl.getPersistentDeviceId())
.isEqualTo("companion:" + mAssociationInfo.getId());
return virtualDeviceImpl;
}