Loading core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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 { core/java/android/companion/CompanionDeviceManager.java +26 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } Loading Loading @@ -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(); } Loading core/java/android/companion/virtual/VirtualDeviceManager.java +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading core/java/android/companion/virtual/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -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" Loading services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +5 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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 Loading
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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 {
core/java/android/companion/CompanionDeviceManager.java +26 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } Loading Loading @@ -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(); } Loading
core/java/android/companion/virtual/VirtualDeviceManager.java +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
core/java/android/companion/virtual/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -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" Loading
services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +5 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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