Merge "Usage Settings: Fix NPE when subscriberId is Null." into sc-dev

This commit is contained in:
Les Lee
2021-06-07 02:41:28 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 5 deletions

View File

@@ -111,9 +111,13 @@ public class SettingsDumpService extends Service {
for (SubscriptionInfo info : manager.getAvailableSubscriptionInfoList()) {
telephonyManager = telephonyManager
.createForSubscriptionId(info.getSubscriptionId());
NetworkTemplate carrier = NetworkTemplate.buildTemplateCarrierMetered(
telephonyManager.getSubscriberId());
final JSONObject usage = dumpDataUsage(carrier, controller);
String subscriberId = telephonyManager.getSubscriberId();
// The null subscriberId means that no any mobile/carrier network will be matched.
// Using old API: buildTemplateMobileAll for the null subscriberId to avoid NPE.
NetworkTemplate template = subscriberId != null
? NetworkTemplate.buildTemplateCarrierMetered(subscriberId)
: NetworkTemplate.buildTemplateMobileAll(subscriberId);
final JSONObject usage = dumpDataUsage(template, controller);
usage.put("subId", info.getSubscriptionId());
array.put(usage);
}

View File

@@ -73,7 +73,10 @@ public class DataUsageLib {
private static NetworkTemplate getMobileTemplateForSubId(
TelephonyManager telephonyManager, int subId) {
return NetworkTemplate.buildTemplateCarrierMetered(
telephonyManager.getSubscriberId(subId));
// The null subscriberId means that no any mobile/carrier network will be matched.
// Using old API: buildTemplateMobileAll for the null subscriberId to avoid NPE.
String subscriberId = telephonyManager.getSubscriberId(subId);
return subscriberId != null ? NetworkTemplate.buildTemplateCarrierMetered(subscriberId)
: NetworkTemplate.buildTemplateMobileAll(subscriberId);
}
}