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

Commit a98953fd authored by Maurice Lam's avatar Maurice Lam Committed by Android (Google) Code Review
Browse files

Merge "Unhide VDM API to allow / block specific activities"

parents 73d699f9 a072e9fd
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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<android.content.ComponentName> getAllowedActivities();
    method @Nullable public java.util.Set<android.content.ComponentName> getBlockedActivities();
    method public int getLockState();
    method @NonNull public java.util.Set<android.os.UserHandle> 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<android.content.ComponentName>);
    method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setBlockedActivities(@Nullable java.util.Set<android.content.ComponentName>);
    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<android.os.UserHandle>);
  }
+15 −7
Original line number Diff line number Diff line
@@ -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<ComponentName> 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<ComponentName> 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<ComponentName> 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<ComponentName> blockedActivities) {
            if (mAllowedActivities != null && blockedActivities != null) {
                throw new IllegalArgumentException(