Loading src/com/android/settings/datausage/BillingCyclePreferenceController.java +4 −3 Original line number Diff line number Diff line Loading @@ -26,11 +26,12 @@ import android.os.UserManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settingslib.NetworkPolicyEditor; import androidx.preference.PreferenceScreen; public class BillingCyclePreferenceController extends BasePreferenceController { private int mSubscriptionId; Loading Loading @@ -58,7 +59,7 @@ public class BillingCyclePreferenceController extends BasePreferenceController { services.mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class); services.mUserManager = mContext.getSystemService(UserManager.class); NetworkTemplate template = DataUsageUtils.getMobileTemplate(mContext, mSubscriptionId); NetworkTemplate template = DataUsageLib.getMobileTemplate(mContext, mSubscriptionId); preference.setTemplate(template, mSubscriptionId, services); } Loading src/com/android/settings/datausage/DataUsageSummary.java +2 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.network.ProxySubscriptionManager; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.core.AbstractPreferenceController; Loading Loading @@ -166,7 +167,7 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage private void addMobileSection(int subId, SubscriptionInfo subInfo) { TemplatePreferenceCategory category = (TemplatePreferenceCategory) inflatePreferences(R.xml.data_usage_cellular); category.setTemplate(DataUsageUtils.getMobileTemplate(getContext(), subId), category.setTemplate(DataUsageLib.getMobileTemplate(getContext(), subId), subId, services); category.pushTemplates(services); if (subInfo != null && !TextUtils.isEmpty(subInfo.getDisplayName())) { Loading src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +2 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.internal.util.CollectionUtils; import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.network.ProxySubscriptionManager; import com.android.settings.network.telephony.TelephonyBasePreferenceController; import com.android.settings.widget.EntityHeaderController; Loading Loading @@ -134,7 +135,7 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc if (subInfo != null) { mDataUsageTemplate = R.string.cell_data_template; mDefaultTemplate = DataUsageUtils.getMobileTemplate(context, subscriptionId); mDefaultTemplate = DataUsageLib.getMobileTemplate(context, subscriptionId); } else if (DataUsageUtils.hasWifiRadio(context)) { mDataUsageTemplate = R.string.wifi_data_template; mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); Loading src/com/android/settings/datausage/DataUsageUtils.java +2 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.text.format.Formatter; import android.text.format.Formatter.BytesResult; import android.util.Log; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.network.ProxySubscriptionManager; import java.util.List; Loading Loading @@ -183,7 +184,7 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU */ public static NetworkTemplate getDefaultTemplate(Context context, int defaultSubId) { if (SubscriptionManager.isValidSubscriptionId(defaultSubId) && hasMobileData(context)) { return getMobileTemplate(context, defaultSubId); return DataUsageLib.getMobileTemplate(context, defaultSubId); } else if (hasWifiRadio(context)) { return NetworkTemplate.buildTemplateWifiWildcard(); } else { Loading src/com/android/settings/datausage/lib/DataUsageLib.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.datausage.lib; 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; /** * Lib class for data usage */ public class DataUsageLib { private static final String TAG = "DataUsageLib"; /** * Return mobile NetworkTemplate based on {@code subId} */ public static NetworkTemplate getMobileTemplate(Context context, int subId) { 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); } 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 mobileTemplate; } return NetworkTemplate.normalize(mobileTemplate, mergedSubscriberIds); } private static NetworkTemplate getMobileTemplateForSubId( TelephonyManager telephonyManager, int subId) { return NetworkTemplate.buildTemplateMobileAll(telephonyManager.getSubscriberId(subId)); } } Loading
src/com/android/settings/datausage/BillingCyclePreferenceController.java +4 −3 Original line number Diff line number Diff line Loading @@ -26,11 +26,12 @@ import android.os.UserManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settingslib.NetworkPolicyEditor; import androidx.preference.PreferenceScreen; public class BillingCyclePreferenceController extends BasePreferenceController { private int mSubscriptionId; Loading Loading @@ -58,7 +59,7 @@ public class BillingCyclePreferenceController extends BasePreferenceController { services.mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class); services.mUserManager = mContext.getSystemService(UserManager.class); NetworkTemplate template = DataUsageUtils.getMobileTemplate(mContext, mSubscriptionId); NetworkTemplate template = DataUsageLib.getMobileTemplate(mContext, mSubscriptionId); preference.setTemplate(template, mSubscriptionId, services); } Loading
src/com/android/settings/datausage/DataUsageSummary.java +2 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.network.ProxySubscriptionManager; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.core.AbstractPreferenceController; Loading Loading @@ -166,7 +167,7 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage private void addMobileSection(int subId, SubscriptionInfo subInfo) { TemplatePreferenceCategory category = (TemplatePreferenceCategory) inflatePreferences(R.xml.data_usage_cellular); category.setTemplate(DataUsageUtils.getMobileTemplate(getContext(), subId), category.setTemplate(DataUsageLib.getMobileTemplate(getContext(), subId), subId, services); category.pushTemplates(services); if (subInfo != null && !TextUtils.isEmpty(subInfo.getDisplayName())) { Loading
src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +2 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.internal.util.CollectionUtils; import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.network.ProxySubscriptionManager; import com.android.settings.network.telephony.TelephonyBasePreferenceController; import com.android.settings.widget.EntityHeaderController; Loading Loading @@ -134,7 +135,7 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc if (subInfo != null) { mDataUsageTemplate = R.string.cell_data_template; mDefaultTemplate = DataUsageUtils.getMobileTemplate(context, subscriptionId); mDefaultTemplate = DataUsageLib.getMobileTemplate(context, subscriptionId); } else if (DataUsageUtils.hasWifiRadio(context)) { mDataUsageTemplate = R.string.wifi_data_template; mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); Loading
src/com/android/settings/datausage/DataUsageUtils.java +2 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.text.format.Formatter; import android.text.format.Formatter.BytesResult; import android.util.Log; import com.android.settings.datausage.lib.DataUsageLib; import com.android.settings.network.ProxySubscriptionManager; import java.util.List; Loading Loading @@ -183,7 +184,7 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU */ public static NetworkTemplate getDefaultTemplate(Context context, int defaultSubId) { if (SubscriptionManager.isValidSubscriptionId(defaultSubId) && hasMobileData(context)) { return getMobileTemplate(context, defaultSubId); return DataUsageLib.getMobileTemplate(context, defaultSubId); } else if (hasWifiRadio(context)) { return NetworkTemplate.buildTemplateWifiWildcard(); } else { Loading
src/com/android/settings/datausage/lib/DataUsageLib.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.datausage.lib; 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; /** * Lib class for data usage */ public class DataUsageLib { private static final String TAG = "DataUsageLib"; /** * Return mobile NetworkTemplate based on {@code subId} */ public static NetworkTemplate getMobileTemplate(Context context, int subId) { 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); } 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 mobileTemplate; } return NetworkTemplate.normalize(mobileTemplate, mergedSubscriberIds); } private static NetworkTemplate getMobileTemplateForSubId( TelephonyManager telephonyManager, int subId) { return NetworkTemplate.buildTemplateMobileAll(telephonyManager.getSubscriberId(subId)); } }