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

Commit 58b76e64 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add internal API to get associationId for deviceId."

parents 9467723f af1be3d5
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -102,6 +102,13 @@ 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(
+11 −0
Original line number Diff line number Diff line
@@ -686,6 +686,17 @@ public class VirtualDeviceManagerService extends SystemService {
            return virtualDevice == null ? new ArraySet<>() : virtualDevice.getDisplayIds();
        }

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

        @Override
        public void registerVirtualDisplayListener(
                @NonNull VirtualDisplayListener listener) {
+10 −0
Original line number Diff line number Diff line
@@ -156,4 +156,14 @@ public abstract class VirtualDeviceManagerInternal {
     * @return the set of display ids for all VirtualDisplays owned by the device
     */
    public abstract @NonNull ArraySet<Integer> getDisplayIdsForDevice(int deviceId);

    /**
     * Gets the CDM association 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.
     */
    public abstract int getAssociationIdForDevice(int deviceId);
}
+18 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

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;
@@ -1711,6 +1712,22 @@ public class VirtualDeviceManagerServiceTest {
        assertThat(displayIds).containsExactly(DISPLAY_ID_1, DISPLAY_ID_2);
    }

    @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);
    }

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

    private VirtualDeviceImpl createVirtualDevice(int virtualDeviceId, int ownerUid) {
        VirtualDeviceParams params = new VirtualDeviceParams.Builder()
                .setBlockedActivities(getBlockedActivities())
@@ -1727,6 +1744,7 @@ public class VirtualDeviceManagerServiceTest {
                mPendingTrampolineCallback, mActivityListener, mSoundEffectListener,
                mRunningAppsChangedCallback, params, new DisplayManagerGlobal(mIDisplayManager));
        mVdms.addVirtualDevice(virtualDeviceImpl);
        assertThat(virtualDeviceImpl.getAssociationId()).isEqualTo(mAssociationInfo.getId());
        return virtualDeviceImpl;
    }