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

Commit dc8cf702 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski Committed by Android (Google) Code Review
Browse files

Merge "Several changes to VDM/CDM logic." into main

parents 7c368e1a 476551d2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3185,6 +3185,7 @@ package android.companion.virtual {
    field public static final int LAUNCH_FAILURE_NO_ACTIVITY = 2; // 0x2
    field public static final int LAUNCH_FAILURE_PENDING_INTENT_CANCELED = 1; // 0x1
    field public static final int LAUNCH_SUCCESS = 0; // 0x0
    field @FlaggedApi("android.companion.virtual.flags.persistent_device_id_api") public static final String PERSISTENT_DEVICE_ID_DEFAULT = "default:0";
  }
  public static interface VirtualDeviceManager.ActivityListener {
+26 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.annotation.UserHandleAware;
import android.annotation.UserIdInt;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManagerInternal;
@@ -795,9 +796,19 @@ public final class CompanionDeviceManager {
    @UserHandleAware
    @RequiresPermission(android.Manifest.permission.MANAGE_COMPANION_DEVICES)
    public @NonNull List<AssociationInfo> getAllAssociations() {
        return getAllAssociations(mContext.getUserId());
    }

    /**
     * Per-user version of {@link #getAllAssociations()}.
     *
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_COMPANION_DEVICES)
    public @NonNull List<AssociationInfo> getAllAssociations(@UserIdInt int userId) {
        if (!checkFeaturePresent()) return Collections.emptyList();
        try {
            return mService.getAllAssociationsForUser(mContext.getUserId());
            return mService.getAllAssociationsForUser(userId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -830,12 +841,25 @@ public final class CompanionDeviceManager {
    @RequiresPermission(android.Manifest.permission.MANAGE_COMPANION_DEVICES)
    public void addOnAssociationsChangedListener(
            @NonNull Executor executor, @NonNull OnAssociationsChangedListener listener) {
        addOnAssociationsChangedListener(executor, listener, mContext.getUserId());
    }

    /**
     * Per-user version of
     * {@link #addOnAssociationsChangedListener(Executor, OnAssociationsChangedListener)}.
     *
     * @hide
     */
    @RequiresPermission(android.Manifest.permission.MANAGE_COMPANION_DEVICES)
    public void addOnAssociationsChangedListener(
            @NonNull Executor executor, @NonNull OnAssociationsChangedListener listener,
            @UserIdInt int userId) {
        if (!checkFeaturePresent()) return;
        synchronized (mListeners) {
            final OnAssociationsChangedListenerProxy proxy = new OnAssociationsChangedListenerProxy(
                    executor, listener);
            try {
                mService.addOnAssociationsChangedListener(proxy, mContext.getUserId());
                mService.addOnAssociationsChangedListener(proxy, userId);
            } catch (RemoteException e) {
                throw e.rethrowFromSystemServer();
            }
+13 −0
Original line number Diff line number Diff line
@@ -149,6 +149,19 @@ public final class VirtualDeviceManager {
    @SystemApi
    public static final int LAUNCH_FAILURE_NO_ACTIVITY = 2;

    /**
     * Persistent device identifier corresponding to the default device.
     *
     * @see Context#DEVICE_ID_DEFAULT
     * @see VirtualDevice#getPersistentDeviceId()
     *
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_PERSISTENT_DEVICE_ID_API)
    public static final String PERSISTENT_DEVICE_ID_DEFAULT =
            "default:" + Context.DEVICE_ID_DEFAULT;

    private final IVirtualDeviceManager mService;
    private final Context mContext;

+7 −0
Original line number Diff line number Diff line
@@ -57,6 +57,13 @@ flag {
  bug: "291737919"
}

flag {
  name: "persistent_device_id_api"
  namespace: "virtual_devices"
  description: "Enable persistent device ID notification API"
  bug: "295258915"
}

flag {
  name: "express_metrics"
  namespace: "virtual_devices"
+5 −1
Original line number Diff line number Diff line
@@ -522,7 +522,8 @@ public class CompanionDeviceManagerService extends SystemService {
    private void notifyListeners(
            @UserIdInt int userId, @NonNull List<AssociationInfo> associations) {
        mListeners.broadcast((listener, callbackUserId) -> {
            if ((int) callbackUserId == userId) {
            int listenerUserId = (int) callbackUserId;
            if (listenerUserId == userId || listenerUserId == UserHandle.USER_ALL) {
                try {
                    listener.onAssociationsChanged(associations);
                } catch (RemoteException ignored) {
@@ -660,6 +661,9 @@ public class CompanionDeviceManagerService extends SystemService {

            enforceCallerIsSystemOrCanInteractWithUserId(getContext(), userId);

            if (userId == UserHandle.USER_ALL) {
                return List.copyOf(mAssociationStore.getAssociations());
            }
            return mAssociationStore.getAssociationsForUser(userId);
        }

Loading