[Settings] Mobile data usage code refactor

Code refactor

Bug: 151751844
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsagePreferenceControllerTest
Change-Id: Ie1870523ce83e6a1fc56fe9bc4c61708e0e745c4
This commit is contained in:
Bonian Chen
2020-04-22 17:43:49 +08:00
parent 7db5840dfe
commit 0fef82fbd1

View File

@@ -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);
}
}