diff options
| -rw-r--r-- | core/api/current.txt | 8 | ||||
| -rw-r--r-- | core/api/system-current.txt | 8 | ||||
| -rw-r--r-- | telephony/java/android/telephony/euicc/DownloadableSubscription.java | 57 |
3 files changed, 60 insertions, 13 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 58ac5400ec3f..05fe2f126cac 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -41716,6 +41716,14 @@ package android.telephony.euicc { field @NonNull public static final android.os.Parcelable.Creator<android.telephony.euicc.DownloadableSubscription> CREATOR; } + public static final class DownloadableSubscription.Builder { + ctor public DownloadableSubscription.Builder(@NonNull android.telephony.euicc.DownloadableSubscription); + ctor public DownloadableSubscription.Builder(@NonNull String); + method @NonNull public android.telephony.euicc.DownloadableSubscription build(); + method @NonNull public android.telephony.euicc.DownloadableSubscription.Builder setConfirmationCode(@NonNull String); + method @NonNull public android.telephony.euicc.DownloadableSubscription.Builder setEncodedActivationCode(@NonNull String); + } + public final class EuiccInfo implements android.os.Parcelable { ctor public EuiccInfo(@Nullable String); method public int describeContents(); diff --git a/core/api/system-current.txt b/core/api/system-current.txt index bbae92851cd2..a7c5b7480334 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -10907,12 +10907,8 @@ package android.telephony.euicc { public static final class DownloadableSubscription.Builder { ctor public DownloadableSubscription.Builder(); - ctor public DownloadableSubscription.Builder(android.telephony.euicc.DownloadableSubscription); - method public android.telephony.euicc.DownloadableSubscription build(); - method public android.telephony.euicc.DownloadableSubscription.Builder setAccessRules(java.util.List<android.telephony.UiccAccessRule>); - method public android.telephony.euicc.DownloadableSubscription.Builder setCarrierName(String); - method public android.telephony.euicc.DownloadableSubscription.Builder setConfirmationCode(String); - method public android.telephony.euicc.DownloadableSubscription.Builder setEncodedActivationCode(String); + method @NonNull public android.telephony.euicc.DownloadableSubscription.Builder setAccessRules(@NonNull java.util.List<android.telephony.UiccAccessRule>); + method @NonNull public android.telephony.euicc.DownloadableSubscription.Builder setCarrierName(@NonNull String); } public class EuiccCardManager { diff --git a/telephony/java/android/telephony/euicc/DownloadableSubscription.java b/telephony/java/android/telephony/euicc/DownloadableSubscription.java index 52b31d7f9611..34120790b25a 100644 --- a/telephony/java/android/telephony/euicc/DownloadableSubscription.java +++ b/telephony/java/android/telephony/euicc/DownloadableSubscription.java @@ -15,6 +15,7 @@ */ package android.telephony.euicc; +import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.PendingIntent; @@ -102,44 +103,86 @@ public final class DownloadableSubscription implements Parcelable { this.accessRules = accessRules; } - /** @hide */ - @SystemApi public static final class Builder { @Nullable private String encodedActivationCode; @Nullable private String confirmationCode; @Nullable private String carrierName; List<UiccAccessRule> accessRules; + /** @hide */ + @SystemApi public Builder() {} - public Builder(DownloadableSubscription baseSubscription) { + public Builder(@NonNull DownloadableSubscription baseSubscription) { encodedActivationCode = baseSubscription.getEncodedActivationCode(); confirmationCode = baseSubscription.getConfirmationCode(); carrierName = baseSubscription.getCarrierName(); accessRules = baseSubscription.getAccessRules(); } + public Builder(@NonNull String encodedActivationCode) { + Preconditions.checkNotNull(encodedActivationCode, "Activation code may not be null"); + this.encodedActivationCode = encodedActivationCode; + } + + /** + * Builds a {@link DownloadableSubscription} object. If the encoded activation code is + * {@code null}, a {@link NullPointerException} will be thrown. + * @return a non-null {@link DownloadableSubscription} object. + */ + @NonNull public DownloadableSubscription build() { + Preconditions.checkNotNull(encodedActivationCode, "Activation code may not be null"); return new DownloadableSubscription(encodedActivationCode, confirmationCode, carrierName, accessRules); } - public Builder setEncodedActivationCode(String value) { + /** + * Sets the encoded activation code. If the encoded activation code is {@code null}, a + * {@link NullPointerException} will be thrown. + * @param value the activation code to use. An activation code can be parsed from a user + * scanned QR code. The format of activation code is defined in SGP.22. For + * example, "1$SMDP.GSMA.COM$04386-AGYFT-A74Y8-3F815$1.3.6.1.4.1.31746". For + * detail, see {@code com.android.euicc.data.ActivationCode}. Must not be null. + */ + @NonNull + public Builder setEncodedActivationCode(@NonNull String value) { + Preconditions.checkNotNull(encodedActivationCode, "Activation code may not be null"); encodedActivationCode = value; return this; } - public Builder setConfirmationCode(String value) { + /** + * Sets the confirmation code. + * @param value the confirmation code to use to authenticate the carrier server got + * subscription download. + */ + @NonNull + public Builder setConfirmationCode(@NonNull String value) { confirmationCode = value; return this; } - public Builder setCarrierName(String value) { + /** + * Sets the user-visible carrier name. + * @param value carrier name. + * @hide + */ + @NonNull + @SystemApi + public Builder setCarrierName(@NonNull String value) { carrierName = value; return this; } - public Builder setAccessRules(List<UiccAccessRule> value) { + /** + * Sets the {@link UiccAccessRule}s dictating access to this subscription. + * @param value A list of {@link UiccAccessRule}s. + * @hide + */ + @NonNull + @SystemApi + public Builder setAccessRules(@NonNull List<UiccAccessRule> value) { accessRules = value; return this; } |