From bc10c0014961adf32cb0d3519e649b51de3755b8 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Thu, 23 Apr 2020 19:48:36 +0800 Subject: [Settings] Support the display of data usage when SIM inactive SIM can be inactive but remain existed within slot. Therefore, change the design here. Bug: 143996139 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageSummaryPreferenceControllerTest Change-Id: I24ec529b120b2801f7b9089b07d32bdd1038883f --- .../DataUsageSummaryPreferenceController.java | 23 ++++++++++------------ 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'src/com/android/settings/datausage') diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java index 135abfa930..648b38c7e8 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java @@ -120,14 +120,14 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc mContext.getSystemService(NetworkPolicyManager.class); mPolicyEditor = new NetworkPolicyEditor(policyManager); - mHasMobileData = SubscriptionManager.isValidSubscriptionId(mSubId) - && DataUsageUtils.hasMobileData(mContext); + mHasMobileData = DataUsageUtils.hasMobileData(mContext); mDataUsageController = new DataUsageController(mContext); mDataUsageController.setSubscriptionId(mSubId); mDataInfoController = new DataUsageInfoController(); - if (mHasMobileData) { + final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); + if (subInfo != null) { mDataUsageTemplate = R.string.cell_data_template; } else if (DataUsageUtils.hasWifiRadio(mContext)) { mDataUsageTemplate = R.string.wifi_data_template; @@ -180,18 +180,16 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc @VisibleForTesting SubscriptionInfo getSubscriptionInfo(int subscriptionId) { + if (!mHasMobileData) { + return null; + } return ProxySubscriptionManager.getInstance(mContext) .getAccessibleSubscriptionInfo(subscriptionId); } - @VisibleForTesting - boolean hasSim() { - return DataUsageUtils.hasSim(mContext); - } - @Override public int getAvailabilityStatus(int subId) { - return hasSim() + return (getSubscriptionInfo(subId) != null) || DataUsageUtils.hasWifiRadio(mContext) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @@ -199,16 +197,15 @@ public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenc public void updateState(Preference preference) { DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference; - final boolean isSimCardAdded = hasSim(); - if (!isSimCardAdded) { + final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); + if (subInfo == null) { mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard(); } final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(mDefaultTemplate); - final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId); - if (isSimCardAdded) { + if (subInfo != null) { mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate)); summaryPreference.setWifiMode(/* isWifiMode */ false, /* usagePeriod */ null, /* isSingleWifi */ false); -- cgit v1.2.3