diff --git a/core/java/android/companion/virtual/VirtualDeviceParams.java b/core/java/android/companion/virtual/VirtualDeviceParams.java index 41b1a1feae80d..cbb51838507bb 100644 --- a/core/java/android/companion/virtual/VirtualDeviceParams.java +++ b/core/java/android/companion/virtual/VirtualDeviceParams.java @@ -28,6 +28,8 @@ import android.os.Parcelable; import android.os.UserHandle; import android.util.ArraySet; +import com.android.internal.util.Preconditions; + import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -82,7 +84,7 @@ public final class VirtualDeviceParams implements Parcelable { public static final int ACTIVITY_POLICY_DEFAULT_BLOCKED = 1; private final int mLockState; - private final ArraySet mUsersWithMatchingAccounts; + @NonNull private final ArraySet mUsersWithMatchingAccounts; @NonNull private final ArraySet mAllowedActivities; @NonNull private final ArraySet mBlockedActivities; @ActivityPolicy @@ -94,10 +96,14 @@ public final class VirtualDeviceParams implements Parcelable { @NonNull Set allowedActivities, @NonNull Set blockedActivities, @ActivityPolicy int defaultActivityPolicy) { + Preconditions.checkNotNull(usersWithMatchingAccounts); + Preconditions.checkNotNull(allowedActivities); + Preconditions.checkNotNull(blockedActivities); + mLockState = lockState; mUsersWithMatchingAccounts = new ArraySet<>(usersWithMatchingAccounts); - mAllowedActivities = allowedActivities == null ? null : new ArraySet<>(allowedActivities); - mBlockedActivities = blockedActivities == null ? null : new ArraySet<>(blockedActivities); + mAllowedActivities = new ArraySet<>(allowedActivities); + mBlockedActivities = new ArraySet<>(blockedActivities); mDefaultActivityPolicy = defaultActivityPolicy; } @@ -130,30 +136,24 @@ public final class VirtualDeviceParams implements Parcelable { } /** - * Returns the set of activities allowed to be streamed, or {@code null} if all activities are + * Returns the set of activities allowed to be streamed, or empty set if all activities are * allowed, except the ones explicitly blocked. * * @see Builder#setAllowedActivities(Set) */ @NonNull public Set getAllowedActivities() { - if (mAllowedActivities == null) { - return Collections.emptySet(); - } return Collections.unmodifiableSet(mAllowedActivities); } /** - * Returns the set of activities that are blocked from streaming, or {@code null} to indicate + * Returns the set of activities that are blocked from streaming, or empty set to indicate * that all activities in {@link #getAllowedActivities} are allowed. * * @see Builder#setBlockedActivities(Set) */ @NonNull public Set getBlockedActivities() { - if (mBlockedActivities == null) { - return Collections.emptySet(); - } return Collections.unmodifiableSet(mBlockedActivities); } @@ -237,7 +237,7 @@ public final class VirtualDeviceParams implements Parcelable { public static final class Builder { private @LockState int mLockState = LOCK_STATE_DEFAULT; - private Set mUsersWithMatchingAccounts; + @NonNull private Set mUsersWithMatchingAccounts = Collections.emptySet();; @NonNull private Set mBlockedActivities = Collections.emptySet(); @NonNull private Set mAllowedActivities = Collections.emptySet(); @ActivityPolicy @@ -282,6 +282,7 @@ public final class VirtualDeviceParams implements Parcelable { @NonNull public Builder setUsersWithMatchingAccounts( @NonNull Set usersWithMatchingAccounts) { + Preconditions.checkNotNull(usersWithMatchingAccounts); mUsersWithMatchingAccounts = usersWithMatchingAccounts; return this; } @@ -301,6 +302,7 @@ public final class VirtualDeviceParams implements Parcelable { */ @NonNull public Builder setAllowedActivities(@NonNull Set allowedActivities) { + Preconditions.checkNotNull(allowedActivities); if (mDefaultActivityPolicyConfigured && mDefaultActivityPolicy != ACTIVITY_POLICY_DEFAULT_BLOCKED) { throw new IllegalArgumentException( @@ -327,6 +329,7 @@ public final class VirtualDeviceParams implements Parcelable { */ @NonNull public Builder setBlockedActivities(@NonNull Set blockedActivities) { + Preconditions.checkNotNull(blockedActivities); if (mDefaultActivityPolicyConfigured && mDefaultActivityPolicy != ACTIVITY_POLICY_DEFAULT_ALLOWED) { throw new IllegalArgumentException( @@ -343,9 +346,6 @@ public final class VirtualDeviceParams implements Parcelable { */ @NonNull public VirtualDeviceParams build() { - if (mUsersWithMatchingAccounts == null) { - mUsersWithMatchingAccounts = Collections.emptySet(); - } return new VirtualDeviceParams( mLockState, mUsersWithMatchingAccounts,