Loading packages/SettingsLib/src/com/android/settingslib/net/DataUsageUtils.java +34 −14 Original line number Diff line number Diff line Loading @@ -18,11 +18,15 @@ package com.android.settingslib.net; import android.content.Context; import android.net.NetworkTemplate; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; import com.android.internal.util.ArrayUtils; import java.util.List; /** * Utils class for data usage */ Loading @@ -33,26 +37,42 @@ public class DataUsageUtils { * Return mobile NetworkTemplate based on {@code subId} */ public static NetworkTemplate getMobileTemplate(Context context, int subId) { final TelephonyManager telephonyManager = context.getSystemService( TelephonyManager.class); final SubscriptionManager subscriptionManager = context.getSystemService( SubscriptionManager.class); final NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll( telephonyManager.getSubscriberId()); if (!subscriptionManager.isActiveSubscriptionId(subId)) { Log.i(TAG, "Subscription is not active: " + subId); return mobileAll; final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class); final int mobileDefaultSubId = telephonyManager.getSubscriptionId(); final SubscriptionManager subscriptionManager = context.getSystemService(SubscriptionManager.class); final List<SubscriptionInfo> subInfoList = subscriptionManager.getAvailableSubscriptionInfoList(); if (subInfoList == null) { Log.i(TAG, "Subscription is not inited: " + subId); return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId); } final String[] mergedSubscriberIds = telephonyManager.createForSubscriptionId(subId) .getMergedImsisFromGroup(); for (SubscriptionInfo subInfo : subInfoList) { if ((subInfo != null) && (subInfo.getSubscriptionId() == subId)) { return getNormalizedMobileTemplate(telephonyManager, subId); } } Log.i(TAG, "Subscription is not active: " + subId); return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId); } private static NetworkTemplate getNormalizedMobileTemplate( TelephonyManager telephonyManager, int subId) { final NetworkTemplate mobileTemplate = getMobileTemplateForSubId(telephonyManager, subId); final String[] mergedSubscriberIds = telephonyManager .createForSubscriptionId(subId).getMergedImsisFromGroup(); if (ArrayUtils.isEmpty(mergedSubscriberIds)) { Log.i(TAG, "mergedSubscriberIds is null."); return mobileAll; return mobileTemplate; } return NetworkTemplate.normalize(mobileTemplate, mergedSubscriberIds); } return NetworkTemplate.normalize(mobileAll, mergedSubscriberIds); private static NetworkTemplate getMobileTemplateForSubId( TelephonyManager telephonyManager, int subId) { return NetworkTemplate.buildTemplateMobileAll(telephonyManager.getSubscriberId(subId)); } } Loading
packages/SettingsLib/src/com/android/settingslib/net/DataUsageUtils.java +34 −14 Original line number Diff line number Diff line Loading @@ -18,11 +18,15 @@ package com.android.settingslib.net; import android.content.Context; import android.net.NetworkTemplate; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; import com.android.internal.util.ArrayUtils; import java.util.List; /** * Utils class for data usage */ Loading @@ -33,26 +37,42 @@ public class DataUsageUtils { * Return mobile NetworkTemplate based on {@code subId} */ public static NetworkTemplate getMobileTemplate(Context context, int subId) { final TelephonyManager telephonyManager = context.getSystemService( TelephonyManager.class); final SubscriptionManager subscriptionManager = context.getSystemService( SubscriptionManager.class); final NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll( telephonyManager.getSubscriberId()); if (!subscriptionManager.isActiveSubscriptionId(subId)) { Log.i(TAG, "Subscription is not active: " + subId); return mobileAll; final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class); final int mobileDefaultSubId = telephonyManager.getSubscriptionId(); final SubscriptionManager subscriptionManager = context.getSystemService(SubscriptionManager.class); final List<SubscriptionInfo> subInfoList = subscriptionManager.getAvailableSubscriptionInfoList(); if (subInfoList == null) { Log.i(TAG, "Subscription is not inited: " + subId); return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId); } final String[] mergedSubscriberIds = telephonyManager.createForSubscriptionId(subId) .getMergedImsisFromGroup(); for (SubscriptionInfo subInfo : subInfoList) { if ((subInfo != null) && (subInfo.getSubscriptionId() == subId)) { return getNormalizedMobileTemplate(telephonyManager, subId); } } Log.i(TAG, "Subscription is not active: " + subId); return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId); } private static NetworkTemplate getNormalizedMobileTemplate( TelephonyManager telephonyManager, int subId) { final NetworkTemplate mobileTemplate = getMobileTemplateForSubId(telephonyManager, subId); final String[] mergedSubscriberIds = telephonyManager .createForSubscriptionId(subId).getMergedImsisFromGroup(); if (ArrayUtils.isEmpty(mergedSubscriberIds)) { Log.i(TAG, "mergedSubscriberIds is null."); return mobileAll; return mobileTemplate; } return NetworkTemplate.normalize(mobileTemplate, mergedSubscriberIds); } return NetworkTemplate.normalize(mobileAll, mergedSubscriberIds); private static NetworkTemplate getMobileTemplateForSubId( TelephonyManager telephonyManager, int subId) { return NetworkTemplate.buildTemplateMobileAll(telephonyManager.getSubscriberId(subId)); } }