From 87a457747273909463efaa7ea67cc94fa6b120c9 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Fri, 24 Apr 2020 11:33:15 +0800 Subject: [PATCH] [Settings] Support re-init DataUsageSummaryPreferenceController Support re-init DataUsageSummaryPreferenceController without re-constructing it. Bug: 151751844 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryPreferenceControllerTest Change-Id: If72a521c5fbaec8b8902fb80b13d9d0f07c716af --- .../DataUsageSummaryPreferenceController.java | 23 +++++++++++-------- .../telephony/MobileNetworkSettings.java | 1 + 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java index 648b38c7e87..239ad2178e8 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java @@ -114,25 +114,30 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc */ public void init(int subscriptionId) { mSubId = subscriptionId; + mDataUsageController = null; + } - mDefaultTemplate = DataUsageUtils.getDefaultTemplate(mContext, mSubId); + private void updateConfiguration(Context context, + int subscriptionId, SubscriptionInfo subInfo) { final NetworkPolicyManager policyManager = - mContext.getSystemService(NetworkPolicyManager.class); + context.getSystemService(NetworkPolicyManager.class); mPolicyEditor = new NetworkPolicyEditor(policyManager); - mHasMobileData = DataUsageUtils.hasMobileData(mContext); + mHasMobileData = DataUsageUtils.hasMobileData(context); - mDataUsageController = new DataUsageController(mContext); - mDataUsageController.setSubscriptionId(mSubId); + mDataUsageController = new DataUsageController(context); + mDataUsageController.setSubscriptionId(subscriptionId); mDataInfoController = new DataUsageInfoController(); - final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); if (subInfo != null) { mDataUsageTemplate = R.string.cell_data_template; - } else if (DataUsageUtils.hasWifiRadio(mContext)) { + mDefaultTemplate = DataUsageUtils.getMobileTemplate(context, subscriptionId); + } else if (DataUsageUtils.hasWifiRadio(context)) { mDataUsageTemplate = R.string.wifi_data_template; + mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); } else { mDataUsageTemplate = R.string.ethernet_data_template; + mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, subscriptionId); } } @@ -198,8 +203,8 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference; final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); - if (subInfo == null) { - mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); + if (mDataUsageController == null) { + updateConfiguration(mContext, mSubId, subInfo); } final DataUsageController.DataUsageInfo info = diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java index 4103447f642..d9b31af85c1 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java +++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java @@ -129,6 +129,7 @@ public class MobileNetworkSettings extends RestrictedDashboardFragment { public void onAttach(Context context) { super.onAttach(context); + use(DataUsageSummaryPreferenceController.class).init(mSubId); use(CallsDefaultSubscriptionController.class).init(getLifecycle()); use(SmsDefaultSubscriptionController.class).init(getLifecycle()); use(MobileNetworkSwitchController.class).init(getLifecycle(), mSubId);