Merge "[Settings] Data usage for each subscription" into rvc-dev am: eca8cf5166
Change-Id: Ic30ba6561e3a127ecd806d9d391b6220fa757bb8
This commit is contained in:
@@ -18,11 +18,15 @@ package com.android.settingslib.net;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.NetworkTemplate;
|
import android.net.NetworkTemplate;
|
||||||
|
import android.telephony.SubscriptionInfo;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utils class for data usage
|
* Utils class for data usage
|
||||||
*/
|
*/
|
||||||
@@ -33,26 +37,42 @@ public class DataUsageUtils {
|
|||||||
* Return mobile NetworkTemplate based on {@code subId}
|
* Return mobile NetworkTemplate based on {@code subId}
|
||||||
*/
|
*/
|
||||||
public static NetworkTemplate getMobileTemplate(Context context, int subId) {
|
public static NetworkTemplate getMobileTemplate(Context context, int subId) {
|
||||||
final TelephonyManager telephonyManager = context.getSystemService(
|
final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
|
||||||
TelephonyManager.class);
|
final int mobileDefaultSubId = telephonyManager.getSubscriptionId();
|
||||||
final SubscriptionManager subscriptionManager = context.getSystemService(
|
|
||||||
SubscriptionManager.class);
|
|
||||||
final NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
|
|
||||||
telephonyManager.getSubscriberId());
|
|
||||||
|
|
||||||
if (!subscriptionManager.isActiveSubscriptionId(subId)) {
|
final SubscriptionManager subscriptionManager =
|
||||||
Log.i(TAG, "Subscription is not active: " + subId);
|
context.getSystemService(SubscriptionManager.class);
|
||||||
return mobileAll;
|
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)
|
for (SubscriptionInfo subInfo : subInfoList) {
|
||||||
.getMergedImsisFromGroup();
|
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)) {
|
if (ArrayUtils.isEmpty(mergedSubscriberIds)) {
|
||||||
Log.i(TAG, "mergedSubscriberIds is null.");
|
Log.i(TAG, "mergedSubscriberIds is null.");
|
||||||
return mobileAll;
|
return mobileTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NetworkTemplate.normalize(mobileAll, mergedSubscriberIds);
|
return NetworkTemplate.normalize(mobileTemplate, mergedSubscriberIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static NetworkTemplate getMobileTemplateForSubId(
|
||||||
|
TelephonyManager telephonyManager, int subId) {
|
||||||
|
return NetworkTemplate.buildTemplateMobileAll(telephonyManager.getSubscriberId(subId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user