diff options
| author | 2017-07-26 15:59:08 -0700 | |
|---|---|---|
| committer | 2017-07-26 17:13:58 -0700 | |
| commit | c8ac4f3b54a92d2d69463b0ca4080db93a0b3054 (patch) | |
| tree | 754cb588c2107b30ed3d3e1ad0124a428d52a04f | |
| parent | 5a3d561e2d46122dca7e9ff022f365bca0f75aae (diff) | |
Fix NPE in calling getSubscriptionPlans method.
Bug:63999806
Test: bit FrameworksServicesTests:com.android.server.NetworkPolicyManagerServiceTest
Change-Id: I22b013d7af60c6722c7748c88888ddbe1b7a414f
| -rw-r--r-- | telephony/java/android/telephony/SubscriptionManager.java | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 503bf820c9a0..c8e0a4b40376 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -31,14 +31,13 @@ import android.os.Message; import android.os.RemoteException; import android.os.ServiceManager; import android.util.DisplayMetrics; - import com.android.internal.telephony.IOnSubscriptionsChangedListener; import com.android.internal.telephony.ISub; import com.android.internal.telephony.ITelephonyRegistry; import com.android.internal.telephony.PhoneConstants; - import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -59,7 +58,7 @@ public class SubscriptionManager { /** Base value for Dummy SUBSCRIPTION_ID's. */ /** FIXME: Remove DummySubId's, but for now have them map just below INVALID_SUBSCRIPTION_ID - /** @hide */ + /** @hide */ public static final int DUMMY_SUBSCRIPTION_ID_BASE = INVALID_SUBSCRIPTION_ID - 1; /** An invalid phone identifier */ @@ -368,7 +367,7 @@ public class SubscriptionManager { */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String SUB_DEFAULT_CHANGED_ACTION = - "android.intent.action.SUB_DEFAULT_CHANGED"; + "android.intent.action.SUB_DEFAULT_CHANGED"; /** * Broadcast Action: The default subscription has changed. This has the following @@ -621,7 +620,7 @@ public class SubscriptionManager { } if (result == null) { - result = new ArrayList<SubscriptionInfo>(); + result = new ArrayList<>(); } return result; } @@ -1450,8 +1449,8 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - resultValue = iSub.getSubscriptionProperty(subId, propKey, - context.getOpPackageName()); + resultValue = iSub.getSubscriptionProperty(subId, propKey, + context.getOpPackageName()); } } catch (RemoteException ex) { // ignore it @@ -1560,8 +1559,10 @@ public class SubscriptionManager { final INetworkPolicyManager npm = INetworkPolicyManager.Stub .asInterface(ServiceManager.getService(Context.NETWORK_POLICY_SERVICE)); try { - return Arrays.asList(npm.getSubscriptionPlans(subId, - mContext.getOpPackageName())); + SubscriptionPlan[] subscriptionPlans = + npm.getSubscriptionPlans(subId, mContext.getOpPackageName()); + return subscriptionPlans == null + ? Collections.emptyList() : Arrays.asList(subscriptionPlans); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } |