[Settings] Mobile data usage code refactor
Code refactor
Bug: 151751844
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsagePreferenceControllerTest
Change-Id: Ie1870523ce83e6a1fc56fe9bc4c61708e0e745c4
diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java
index b260657..4499881 100644
--- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.java
+++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.java
@@ -35,7 +35,6 @@
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 @@
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 @@
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);
}
}