From 0fef82fbd110c621f20536963d4485df76089fba Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Wed, 22 Apr 2020 17:43:49 +0800 Subject: [PATCH] [Settings] Mobile data usage code refactor Code refactor Bug: 151751844 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsagePreferenceControllerTest Change-Id: Ie1870523ce83e6a1fc56fe9bc4c61708e0e745c4 --- .../DataUsagePreferenceController.java | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java index b260657f0eb..4499881ca76 100644 --- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java +++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java @@ -35,7 +35,6 @@ import com.android.settingslib.net.DataUsageController; public class DataUsagePreferenceController extends TelephonyBasePreferenceController { private NetworkTemplate mTemplate; - private DataUsageController.DataUsageInfo mDataUsageInfo; public DataUsagePreferenceController(Context context, String key) { super(context, key); @@ -68,18 +67,12 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro preference.setEnabled(false); return; } - long usageLevel = mDataUsageInfo.usageLevel; - if (usageLevel <= 0L) { - final DataUsageController controller = new DataUsageController(mContext); - usageLevel = controller.getHistoricalUsageLevel(mTemplate); - } - final boolean enabled = usageLevel > 0L; - preference.setEnabled(enabled); - - if (enabled) { - preference.setSummary(mContext.getString(R.string.data_usage_template, - DataUsageUtils.formatDataUsage(mContext, mDataUsageInfo.usageLevel), - mDataUsageInfo.period)); + final CharSequence summary = getDataUsageSummary(mContext, mSubId); + if (summary == null) { + preference.setEnabled(false); + } else { + preference.setEnabled(true); + preference.setSummary(summary); } } @@ -90,9 +83,22 @@ public class DataUsagePreferenceController extends TelephonyBasePreferenceContro return; } mTemplate = DataUsageUtils.getDefaultTemplate(mContext, mSubId); + } - final DataUsageController controller = new DataUsageController(mContext); - controller.setSubscriptionId(mSubId); - mDataUsageInfo = controller.getDataUsageInfo(mTemplate); + private CharSequence getDataUsageSummary(Context context, int subId) { + final DataUsageController controller = new DataUsageController(context); + controller.setSubscriptionId(subId); + + final DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate); + + long usageLevel = usageInfo.usageLevel; + if (usageLevel <= 0L) { + usageLevel = controller.getHistoricalUsageLevel(mTemplate); + } + if (usageLevel <= 0L) { + return null; + } + return context.getString(R.string.data_usage_template, + DataUsageUtils.formatDataUsage(context, usageLevel), usageInfo.period); } }