From 80e1e5c94393a39e1977d3c155a61d10ab9c8104 Mon Sep 17 00:00:00 2001 From: Malcolm Chen Date: Wed, 27 Feb 2019 15:16:05 -0800 Subject: [PATCH 1/2] Adding nullability annotation. For below APIs: removeOnOpportunisticSubscriptionChangedListener switchToSubscription Bug: 126391202 Test: build Change-Id: I791fd6307371ef9a1918b119f4a1b15623517157 Merged-In: I791fd6307371ef9a1918b119f4a1b15623517157 --- api/current.txt | 4 ++-- telephony/java/android/telephony/SubscriptionManager.java | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/api/current.txt b/api/current.txt index 482a221ee80d3..6cdcd3639d2ff 100755 --- a/api/current.txt +++ b/api/current.txt @@ -42959,7 +42959,7 @@ package android.telephony { method public boolean isNetworkRoaming(int); method public static boolean isUsableSubscriptionId(int); method public static boolean isValidSubscriptionId(int); - method public void removeOnOpportunisticSubscriptionsChangedListener(android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener); + method public void removeOnOpportunisticSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener); method public void removeOnSubscriptionsChangedListener(android.telephony.SubscriptionManager.OnSubscriptionsChangedListener); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean removeSubscriptionsFromGroup(@NonNull int[]); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setMetered(boolean, int); @@ -42968,7 +42968,7 @@ package android.telephony { method public void setSubscriptionOverrideCongested(int, boolean, long); method public void setSubscriptionOverrideUnmetered(int, boolean, long); method public void setSubscriptionPlans(int, @NonNull java.util.List); - method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void switchToSubscription(int, android.app.PendingIntent); + method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void switchToSubscription(int, @NonNull android.app.PendingIntent); field public static final String ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED = "android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED"; field public static final String ACTION_DEFAULT_SUBSCRIPTION_CHANGED = "android.telephony.action.DEFAULT_SUBSCRIPTION_CHANGED"; field public static final String ACTION_MANAGE_SUBSCRIPTION_PLANS = "android.telephony.action.MANAGE_SUBSCRIPTION_PLANS"; diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 1301246f8574b..8ee4fd0b9c6a1 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -63,6 +63,7 @@ import com.android.internal.telephony.ISetOpportunisticDataCallback; import com.android.internal.telephony.ISub; import com.android.internal.telephony.ITelephonyRegistry; import com.android.internal.telephony.PhoneConstants; +import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1073,7 +1074,8 @@ public class SubscriptionManager { * @param listener that is to be unregistered. */ public void removeOnOpportunisticSubscriptionsChangedListener( - OnOpportunisticSubscriptionsChangedListener listener) { + @NonNull OnOpportunisticSubscriptionsChangedListener listener) { + Preconditions.checkNotNull(listener, "listener cannot be null"); String pkgForDebug = mContext != null ? mContext.getOpPackageName() : ""; if (DBG) { logd("unregister OnOpportunisticSubscriptionsChangedListener pkgForDebug=" @@ -2689,7 +2691,8 @@ public class SubscriptionManager { * @param callbackIntent pending intent that will be sent after operation is done. */ @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) - public void switchToSubscription(int subId, PendingIntent callbackIntent) { + public void switchToSubscription(int subId, @NonNull PendingIntent callbackIntent) { + Preconditions.checkNotNull(callbackIntent, "callbackIntent cannot be null"); EuiccManager euiccManager = new EuiccManager(mContext); euiccManager.switchToSubscription(subId, callbackIntent); } From 593d7ebaed6fda8dc2729f0394feacb1ca0b69f5 Mon Sep 17 00:00:00 2001 From: Malcolm Chen Date: Tue, 26 Feb 2019 19:42:56 -0800 Subject: [PATCH 2/2] Add @Nullable on SubscriptionInfo#getGroupUuid SubscriptionInfo#getGroupUuid will return null if group is not set. Bug: 123587615 Test: build Change-Id: I592d35388d88bda1f908441824772fea36d43059 Merged-In: I592d35388d88bda1f908441824772fea36d43059 --- api/current.txt | 2 +- telephony/java/android/telephony/SubscriptionInfo.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api/current.txt b/api/current.txt index 6cdcd3639d2ff..d2b81b093e3fb 100755 --- a/api/current.txt +++ b/api/current.txt @@ -42918,7 +42918,7 @@ package android.telephony { method public String getCountryIso(); method public int getDataRoaming(); method public CharSequence getDisplayName(); - method public String getGroupUuid(); + method @Nullable public String getGroupUuid(); method public String getIccId(); method public int getIconTint(); method @Deprecated public int getMcc(); diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java index 58f12e2c427af..b781b109bdcc9 100644 --- a/telephony/java/android/telephony/SubscriptionInfo.java +++ b/telephony/java/android/telephony/SubscriptionInfo.java @@ -467,7 +467,7 @@ public class SubscriptionInfo implements Parcelable { * @return group UUID a String of group UUID if it belongs to a group. Otherwise * it will return null. */ - public String getGroupUuid() { + public @Nullable String getGroupUuid() { return mGroupUUID; }