summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api/system-current.txt4
-rw-r--r--core/java/android/companion/virtual/IVirtualDeviceActivityListener.aidl5
-rw-r--r--core/java/android/companion/virtual/VirtualDeviceInternal.java13
-rw-r--r--core/java/android/companion/virtual/VirtualDeviceManager.java5
-rw-r--r--core/java/android/companion/virtual/VirtualDeviceParams.java10
-rw-r--r--services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java13
6 files changed, 26 insertions, 24 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 445a57220757..d185b8d09c5f 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -3448,7 +3448,7 @@ package android.companion.virtual {
}
public static interface VirtualDeviceManager.ActivityListener {
- method @FlaggedApi("android.companion.virtualdevice.flags.activity_control_api") public default void onActivityLaunchBlocked(int, @NonNull android.content.ComponentName, int, @Nullable android.content.IntentSender);
+ method @FlaggedApi("android.companion.virtualdevice.flags.activity_control_api") public default void onActivityLaunchBlocked(int, @NonNull android.content.ComponentName, @NonNull android.os.UserHandle, @Nullable android.content.IntentSender);
method public void onDisplayEmpty(int);
method @Deprecated public void onTopActivityChanged(int, @NonNull android.content.ComponentName);
method public default void onTopActivityChanged(int, @NonNull android.content.ComponentName, int);
@@ -3528,7 +3528,7 @@ package android.companion.virtual {
field @Deprecated public static final int NAVIGATION_POLICY_DEFAULT_BLOCKED = 1; // 0x1
field @FlaggedApi("android.companion.virtual.flags.dynamic_policy") public static final int POLICY_TYPE_ACTIVITY = 3; // 0x3
field public static final int POLICY_TYPE_AUDIO = 1; // 0x1
- field @FlaggedApi("android.companion.virtualdevice.flags.activity_control_api") public static final int POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR = 6; // 0x6
+ field @FlaggedApi("android.companion.virtualdevice.flags.activity_control_api") public static final int POLICY_TYPE_BLOCKED_ACTIVITY = 6; // 0x6
field @FlaggedApi("android.companion.virtual.flags.virtual_camera") public static final int POLICY_TYPE_CAMERA = 5; // 0x5
field @FlaggedApi("android.companion.virtual.flags.cross_device_clipboard") public static final int POLICY_TYPE_CLIPBOARD = 4; // 0x4
field public static final int POLICY_TYPE_RECENTS = 2; // 0x2
diff --git a/core/java/android/companion/virtual/IVirtualDeviceActivityListener.aidl b/core/java/android/companion/virtual/IVirtualDeviceActivityListener.aidl
index 564fb023dc7b..7c674f9cde6b 100644
--- a/core/java/android/companion/virtual/IVirtualDeviceActivityListener.aidl
+++ b/core/java/android/companion/virtual/IVirtualDeviceActivityListener.aidl
@@ -18,6 +18,7 @@ package android.companion.virtual;
import android.content.ComponentName;
import android.content.IntentSender;
+import android.os.UserHandle;
/**
* Interface to listen for activity changes in a virtual device.
@@ -48,9 +49,9 @@ oneway interface IVirtualDeviceActivityListener {
*
* @param displayId The display ID on which the activity tried to launch.
* @param componentName The component name of the blocked activity.
- * @param userId The user ID associated with the blocked activity.
+ * @param user The user associated with the blocked activity.
* @param intentSender The original sender of the intent.
*/
- void onActivityLaunchBlocked(int displayId, in ComponentName componentName, int userId,
+ void onActivityLaunchBlocked(int displayId, in ComponentName componentName, in UserHandle user,
in IntentSender intentSender);
}
diff --git a/core/java/android/companion/virtual/VirtualDeviceInternal.java b/core/java/android/companion/virtual/VirtualDeviceInternal.java
index 19eb497dbd7a..9636cd44cad9 100644
--- a/core/java/android/companion/virtual/VirtualDeviceInternal.java
+++ b/core/java/android/companion/virtual/VirtualDeviceInternal.java
@@ -19,7 +19,7 @@ package android.companion.virtual;
import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_ACTIVITY;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO;
-import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR;
+import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_BLOCKED_ACTIVITY;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_CLIPBOARD;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;
@@ -65,6 +65,7 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException;
import android.os.ResultReceiver;
+import android.os.UserHandle;
import android.util.ArrayMap;
import android.view.WindowManager;
@@ -136,14 +137,14 @@ public class VirtualDeviceInternal {
@Override
public void onActivityLaunchBlocked(int displayId, ComponentName componentName,
- @UserIdInt int userId, IntentSender intentSender) {
+ UserHandle user, IntentSender intentSender) {
final long token = Binder.clearCallingIdentity();
try {
synchronized (mActivityListenersLock) {
for (int i = 0; i < mActivityListeners.size(); i++) {
mActivityListeners.valueAt(i)
.onActivityLaunchBlocked(
- displayId, componentName, userId, intentSender);
+ displayId, componentName, user, intentSender);
}
}
} finally {
@@ -292,7 +293,7 @@ public class VirtualDeviceInternal {
case POLICY_TYPE_RECENTS:
case POLICY_TYPE_CLIPBOARD:
case POLICY_TYPE_ACTIVITY:
- case POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR:
+ case POLICY_TYPE_BLOCKED_ACTIVITY:
break;
default:
throw new IllegalArgumentException("Device policy " + policyType
@@ -595,10 +596,10 @@ public class VirtualDeviceInternal {
}
public void onActivityLaunchBlocked(int displayId, ComponentName componentName,
- @UserIdInt int userId, IntentSender intentSender) {
+ UserHandle user, IntentSender intentSender) {
mExecutor.execute(() ->
mActivityListener.onActivityLaunchBlocked(
- displayId, componentName, userId, intentSender));
+ displayId, componentName, user, intentSender));
}
}
diff --git a/core/java/android/companion/virtual/VirtualDeviceManager.java b/core/java/android/companion/virtual/VirtualDeviceManager.java
index 8b60580ec114..16fee108c956 100644
--- a/core/java/android/companion/virtual/VirtualDeviceManager.java
+++ b/core/java/android/companion/virtual/VirtualDeviceManager.java
@@ -67,6 +67,7 @@ import android.media.AudioManager;
import android.os.Binder;
import android.os.Looper;
import android.os.RemoteException;
+import android.os.UserHandle;
import android.util.ArraySet;
import android.util.Log;
import android.view.Display;
@@ -1264,7 +1265,7 @@ public final class VirtualDeviceManager {
*
* @param displayId The display ID on which the activity tried to launch.
* @param componentName The component name of the blocked activity.
- * @param userId The user ID associated with the blocked activity.
+ * @param user The user associated with the blocked activity.
* @param intentSender The original sender of the intent. May be {@code null} if the sender
* expects an activity result to be reported. In that case
* {@link android.app.Activity#RESULT_CANCELED} was already reported back because the
@@ -1276,7 +1277,7 @@ public final class VirtualDeviceManager {
*/
@FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
default void onActivityLaunchBlocked(int displayId, @NonNull ComponentName componentName,
- @UserIdInt int userId, @Nullable IntentSender intentSender) {}
+ @NonNull UserHandle user, @Nullable IntentSender intentSender) {}
}
/**
diff --git a/core/java/android/companion/virtual/VirtualDeviceParams.java b/core/java/android/companion/virtual/VirtualDeviceParams.java
index c1fc51d3ebd4..03b72bdb8823 100644
--- a/core/java/android/companion/virtual/VirtualDeviceParams.java
+++ b/core/java/android/companion/virtual/VirtualDeviceParams.java
@@ -160,7 +160,7 @@ public final class VirtualDeviceParams implements Parcelable {
*/
@IntDef(prefix = "POLICY_TYPE_", value = {POLICY_TYPE_SENSORS, POLICY_TYPE_AUDIO,
POLICY_TYPE_RECENTS, POLICY_TYPE_ACTIVITY, POLICY_TYPE_CAMERA,
- POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR})
+ POLICY_TYPE_BLOCKED_ACTIVITY})
@Retention(RetentionPolicy.SOURCE)
@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
public @interface PolicyType {}
@@ -172,7 +172,7 @@ public final class VirtualDeviceParams implements Parcelable {
* @hide
*/
@IntDef(prefix = "POLICY_TYPE_", value = {POLICY_TYPE_RECENTS, POLICY_TYPE_ACTIVITY,
- POLICY_TYPE_CLIPBOARD, POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR})
+ POLICY_TYPE_CLIPBOARD, POLICY_TYPE_BLOCKED_ACTIVITY})
@Retention(RetentionPolicy.SOURCE)
@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
public @interface DynamicPolicyType {}
@@ -242,7 +242,7 @@ public final class VirtualDeviceParams implements Parcelable {
* @see VirtualDeviceManager.VirtualDevice#removeActivityPolicyExemption
*/
// TODO(b/333443509): Update the documentation of custom policy and link to the new policy
- // POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR
+ // POLICY_TYPE_BLOCKED_ACTIVITY
@FlaggedApi(Flags.FLAG_DYNAMIC_POLICY)
public static final int POLICY_TYPE_ACTIVITY = 3;
@@ -292,7 +292,7 @@ public final class VirtualDeviceParams implements Parcelable {
*/
// TODO(b/333443509): Link to POLICY_TYPE_ACTIVITY
@FlaggedApi(android.companion.virtualdevice.flags.Flags.FLAG_ACTIVITY_CONTROL_API)
- public static final int POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR = 6;
+ public static final int POLICY_TYPE_BLOCKED_ACTIVITY = 6;
private final int mLockState;
@NonNull private final ArraySet<UserHandle> mUsersWithMatchingAccounts;
@@ -1206,7 +1206,7 @@ public final class VirtualDeviceParams implements Parcelable {
}
if (!android.companion.virtualdevice.flags.Flags.activityControlApi()) {
- mDevicePolicies.delete(POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR);
+ mDevicePolicies.delete(POLICY_TYPE_BLOCKED_ACTIVITY);
}
if ((mAudioPlaybackSessionId != AUDIO_SESSION_ID_GENERATE
diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
index 2db54435199b..f42bb74b3d5d 100644
--- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
+++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
@@ -24,7 +24,7 @@ import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAUL
import static android.companion.virtual.VirtualDeviceParams.NAVIGATION_POLICY_DEFAULT_ALLOWED;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_ACTIVITY;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO;
-import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR;
+import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_BLOCKED_ACTIVITY;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_CAMERA;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_CLIPBOARD;
import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_RECENTS;
@@ -242,11 +242,11 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
@Override
public void onActivityLaunchBlocked(int displayId,
- @NonNull ComponentName componentName, @UserIdInt int userId,
+ @NonNull ComponentName componentName, @NonNull UserHandle user,
@Nullable IntentSender intentSender) {
try {
mActivityListener.onActivityLaunchBlocked(
- displayId, componentName, userId, intentSender);
+ displayId, componentName, user, intentSender);
} catch (RemoteException e) {
Slog.w(TAG, "Unable to call mActivityListener for display: " + displayId, e);
}
@@ -744,7 +744,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
}
}
break;
- case POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR:
+ case POLICY_TYPE_BLOCKED_ACTIVITY:
if (android.companion.virtualdevice.flags.Flags.activityControlApi()) {
synchronized (mVirtualDeviceLock) {
mDevicePolicies.put(policyType, devicePolicy);
@@ -1383,8 +1383,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
mActivityListenerAdapter.onActivityLaunchBlocked(
displayId,
activityInfo.getComponentName(),
- UserHandle.getUserHandleForUid(
- activityInfo.applicationInfo.uid).getIdentifier(),
+ UserHandle.getUserHandleForUid(activityInfo.applicationInfo.uid),
intentSender);
}
}
@@ -1400,7 +1399,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
return true;
}
// Do not show the dialog if disabled by policy.
- return getDevicePolicy(POLICY_TYPE_BLOCKED_ACTIVITY_BEHAVIOR) == DEVICE_POLICY_DEFAULT;
+ return getDevicePolicy(POLICY_TYPE_BLOCKED_ACTIVITY) == DEVICE_POLICY_DEFAULT;
}
private void onSecureWindowShown(int displayId, int uid) {