diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 171ee9a0a95ba..8e688582a3bad 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -2610,6 +2610,8 @@ package android.companion.virtual { public final class VirtualDeviceParams implements android.os.Parcelable { method public int describeContents(); + method @Nullable public java.util.Set getAllowedActivities(); + method @Nullable public java.util.Set getBlockedActivities(); method public int getLockState(); method @NonNull public java.util.Set getUsersWithMatchingAccounts(); method public void writeToParcel(@NonNull android.os.Parcel, int); @@ -2621,6 +2623,8 @@ package android.companion.virtual { public static final class VirtualDeviceParams.Builder { ctor public VirtualDeviceParams.Builder(); method @NonNull public android.companion.virtual.VirtualDeviceParams build(); + method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setAllowedActivities(@Nullable java.util.Set); + method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setBlockedActivities(@Nullable java.util.Set); method @NonNull @RequiresPermission(value=android.Manifest.permission.ADD_ALWAYS_UNLOCKED_DISPLAY, conditional=true) public android.companion.virtual.VirtualDeviceParams.Builder setLockState(int); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setUsersWithMatchingAccounts(@NonNull java.util.Set); } diff --git a/core/java/android/companion/virtual/VirtualDeviceParams.java b/core/java/android/companion/virtual/VirtualDeviceParams.java index 2ddfeb4c8ab56..1d0f7c0918070 100644 --- a/core/java/android/companion/virtual/VirtualDeviceParams.java +++ b/core/java/android/companion/virtual/VirtualDeviceParams.java @@ -22,6 +22,7 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; +import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.content.ComponentName; import android.os.Parcel; @@ -106,11 +107,13 @@ public final class VirtualDeviceParams implements Parcelable { } /** - * Returns the set of activities allowed to be streamed, or {@code null} if this is not set. + * Returns the set of activities allowed to be streamed, or {@code null} if all activities are + * allowed, except the ones explicitly blocked. * * @see Builder#setAllowedActivities(Set) - * @hide // TODO(b/194949534): Unhide this API */ + // Null and empty have different semantics - Null allows all activities to be streamed + @SuppressLint("NullableCollection") @Nullable public Set getAllowedActivities() { if (mAllowedActivities == null) { @@ -120,12 +123,13 @@ public final class VirtualDeviceParams implements Parcelable { } /** - * Returns the set of activities that are blocked from streaming, or {@code null} if this is not - * set. + * Returns the set of activities that are blocked from streaming, or {@code null} to indicate + * that all activities in {@link #getAllowedActivities} are allowed. * * @see Builder#setBlockedActivities(Set) - * @hide // TODO(b/194949534): Unhide this API */ + // Allowing null to enforce that at most one of allowed / blocked activities can be non-null + @SuppressLint("NullableCollection") @Nullable public Set getBlockedActivities() { if (mBlockedActivities == null) { @@ -255,8 +259,10 @@ public final class VirtualDeviceParams implements Parcelable { * * @param allowedActivities A set of activity {@link ComponentName} allowed to be launched * in the virtual device. - * @hide // TODO(b/194949534): Unhide this API */ + // Null and empty have different semantics - Null allows all activities to be streamed + @SuppressLint("NullableCollection") + @NonNull public Builder setAllowedActivities(@Nullable Set allowedActivities) { if (mBlockedActivities != null && allowedActivities != null) { throw new IllegalArgumentException( @@ -279,8 +285,10 @@ public final class VirtualDeviceParams implements Parcelable { * * @param blockedActivities A set of {@link ComponentName} to be blocked launching from * virtual device. - * @hide // TODO(b/194949534): Unhide this API */ + // Allowing null to enforce that at most one of allowed / blocked activities can be non-null + @SuppressLint("NullableCollection") + @NonNull public Builder setBlockedActivities(@Nullable Set blockedActivities) { if (mAllowedActivities != null && blockedActivities != null) { throw new IllegalArgumentException(