Merge "Update javadocs for API review"

This commit is contained in:
Sarah Chin
2020-01-10 23:53:25 +00:00
committed by Gerrit Code Review
2 changed files with 13 additions and 14 deletions

View File

@@ -44,6 +44,14 @@ import java.util.Objects;
* as explaining how much mobile data they have remaining, and what will happen * as explaining how much mobile data they have remaining, and what will happen
* when they run out. * when they run out.
* *
* If specifying network types, the developer must supply at least one plan
* that applies to all network types (default), and all additional plans
* may not include a particular network type more than once.
* This is enforced by {@link SubscriptionManager} when setting the plans.
*
* Plan selection will prefer plans that have specific network types defined
* over plans that apply to all network types.
*
* @see SubscriptionManager#setSubscriptionPlans(int, java.util.List) * @see SubscriptionManager#setSubscriptionPlans(int, java.util.List)
* @see SubscriptionManager#getSubscriptionPlans(int) * @see SubscriptionManager#getSubscriptionPlans(int)
*/ */
@@ -213,7 +221,7 @@ public final class SubscriptionPlan implements Parcelable {
/** /**
* Return an array containing all {@link NetworkType}s this SubscriptionPlan applies to. * Return an array containing all {@link NetworkType}s this SubscriptionPlan applies to.
* A null array means this SubscriptionPlan applies to all network types. * A null value means this SubscriptionPlan applies to all network types.
*/ */
public @Nullable @NetworkType int[] getNetworkTypes() { public @Nullable @NetworkType int[] getNetworkTypes() {
return networkTypes; return networkTypes;
@@ -372,20 +380,13 @@ public final class SubscriptionPlan implements Parcelable {
/** /**
* Set the network types this SubscriptionPlan applies to. * Set the network types this SubscriptionPlan applies to.
* The developer must supply at least one plan that applies to all network types (default),
* and all additional plans may not include a particular network type more than once.
* Plan selection will prefer plans that have specific network types defined
* over plans that apply to all network types.
* *
* @param networkTypes a set of all {@link NetworkType}s that apply to this plan. * @param networkTypes a set of all {@link NetworkType}s that apply to this plan.
* A null value or empty array means the plan applies to all network types. * A null value means the plan applies to all network types,
* and an empty array means the plan applies to no network types.
*/ */
public @NonNull Builder setNetworkTypes(@Nullable @NetworkType int[] networkTypes) { public @NonNull Builder setNetworkTypes(@Nullable @NetworkType int[] networkTypes) {
if (networkTypes == null || networkTypes.length == 0) {
plan.networkTypes = null;
} else {
plan.networkTypes = networkTypes; plan.networkTypes = networkTypes;
}
return this; return this;
} }
} }

View File

@@ -2500,12 +2500,10 @@ public class SubscriptionManager {
* @param plans the list of plans. The first plan is always the primary and * @param plans the list of plans. The first plan is always the primary and
* most important plan. Any additional plans are secondary and * most important plan. Any additional plans are secondary and
* may not be displayed or used by decision making logic. * may not be displayed or used by decision making logic.
* The list of all plans must meet the requirements defined in
* {@link SubscriptionPlan.Builder#setNetworkTypes(int[])}.
* @throws SecurityException if the caller doesn't meet the requirements * @throws SecurityException if the caller doesn't meet the requirements
* outlined above. * outlined above.
* @throws IllegalArgumentException if plans don't meet the requirements * @throws IllegalArgumentException if plans don't meet the requirements
* mentioned above. * defined in {@link SubscriptionPlan}.
*/ */
public void setSubscriptionPlans(int subId, @NonNull List<SubscriptionPlan> plans) { public void setSubscriptionPlans(int subId, @NonNull List<SubscriptionPlan> plans) {
try { try {