Extract and refactor logic to determine the data usage summary mark.

Created a new controller for DataUsageInfo and add appropriate
unit tests.

Bug: 30946416
Change-Id: Ida1281a771013fd807242f846edb4f2a9c0ccabb
Test: Robolectric tests with target RunSettingsRoboTests
This commit is contained in:
Matthew Fritze
2016-08-22 17:40:02 -07:00
parent b739123c2f
commit b42136ec8c
3 changed files with 207 additions and 10 deletions

View File

@@ -20,7 +20,6 @@ import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.INetworkStatsSession;
import android.net.NetworkPolicy;
import android.net.NetworkTemplate;
import android.net.TrafficStats;
import android.os.Bundle;
@@ -71,6 +70,7 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
private DataUsageController mDataUsageController;
private DataUsageInfoController mDataInfoControler;
private SummaryPreference mSummaryPreference;
private Preference mLimitPreference;
private NetworkTemplate mDefaultTemplate;
@@ -82,6 +82,7 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
boolean hasMobileData = hasMobileData(getContext());
mDataUsageController = new DataUsageController(getContext());
mDataInfoControler = new DataUsageInfoController();
addPreferencesFromResource(R.xml.data_usage);
int defaultSubId = getDefaultSubscriptionId(getContext());
@@ -225,18 +226,14 @@ public class DataUsageSummary extends DataUsageBase implements Indexable, DataUs
DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(
mDefaultTemplate);
Context context = getContext();
NetworkPolicy policy = services.mPolicyEditor.getPolicy(mDefaultTemplate);
info.warningLevel = policy.warningBytes;
mDataInfoControler.updateDataLimit(info,
services.mPolicyEditor.getPolicy(mDefaultTemplate));
if (mSummaryPreference != null) {
mSummaryPreference.setTitle(
formatTitle(context, getString(mDataUsageTemplate), info.usageLevel));
long limit = info.limitLevel;
if (limit <= 0) {
limit = info.warningLevel;
}
if (info.usageLevel > limit) {
limit = info.usageLevel;
}
long limit = mDataInfoControler.getSummaryLimit(info);
mSummaryPreference.setSummary(info.period);
mSummaryPreference.setLabels(Formatter.formatFileSize(context, 0),
Formatter.formatFileSize(context, limit));