Merge "Change text for data warning and data limit." into pi-dev

This commit is contained in:
Sundeep Ghuman
2018-03-15 17:08:34 +00:00
committed by Android (Google) Code Review
3 changed files with 103 additions and 11 deletions

View File

@@ -8693,6 +8693,15 @@
<!-- Title of button for application usage cycle preferences [CHAR LIMIT=40] -->
<string name="app_usage_cycle">App data usage cycle</string>
<!-- Format for a summary describing the amount of data before the user is warned [CHAR LIMIT=NONE] -->
<string name="cell_data_warning"><xliff:g name="amount" example="1 GB">^1</xliff:g> data warning</string>
<!-- Format for a summary describing the amount of data the limit is set to [CHAR LIMIT=NONE] -->
<string name="cell_data_limit"><xliff:g name="amount" example="1 GB">^1</xliff:g> data limit</string>
<!-- Format for a summary describing the amount of data before the user is warned or limited [CHAR LIMIT=NONE] -->
<string name="cell_data_warning_and_limit"><xliff:g name="amount" example="1 GB">^1</xliff:g> data warning / <xliff:g name="amount" example="2 GB">^2</xliff:g> data limit</string>
<!-- Summary describing when the billing cycle for their phone carrier starts [CHAR LIMIT=NONE] -->
<string name="billing_cycle_fragment_summary">Monthly on day <xliff:g name="day_of_month" example="17">%1$s</xliff:g></string>

View File

@@ -37,6 +37,7 @@ import android.util.RecurrenceRule;
import com.android.internal.util.CollectionUtils;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.FeatureFlags;
import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.net.DataUsageController;
@@ -164,12 +165,19 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
refreshDataplanInfo(info);
}
if (mDataplanCount == 0 && (info.warningLevel > 0 || info.limitLevel > 0)) {
final String warning = Formatter.formatFileSize(mContext, info.warningLevel);
final String limit = Formatter.formatFileSize(mContext, info.limitLevel);
summaryPreference.setLimitInfo(mContext.getString(info.limitLevel <= 0
? R.string.cell_warning_only
: R.string.cell_warning_and_limit, warning, limit));
if (info.warningLevel > 0 && info.limitLevel > 0) {
summaryPreference.setLimitInfo(TextUtils.expandTemplate(
mContext.getText(R.string.cell_data_warning_and_limit),
Formatter.formatFileSize(mContext, info.warningLevel),
Formatter.formatFileSize(mContext, info.limitLevel)).toString());
} else if (info.warningLevel > 0) {
summaryPreference.setLimitInfo(TextUtils.expandTemplate(
mContext.getText(R.string.cell_data_warning),
Formatter.formatFileSize(mContext, info.warningLevel)).toString());
} else if (info.limitLevel > 0) {
summaryPreference.setLimitInfo(TextUtils.expandTemplate(
mContext.getText(R.string.cell_data_limit),
Formatter.formatFileSize(mContext, info.limitLevel)).toString());
} else {
summaryPreference.setLimitInfo(null);
}
@@ -188,6 +196,13 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll
mDataplanCount, mManageSubscriptionIntent);
}
private String getLimitText(long limit, int textId) {
if (limit <= 0) {
return null;
}
return mContext.getString(textId, Formatter.formatFileSize(mContext, limit));
}
// TODO(b/70950124) add test for this method once the robolectric shadow run script is
// completed (b/3526807)
private void refreshDataplanInfo(DataUsageController.DataUsageInfo info) {

View File

@@ -90,12 +90,12 @@ public class DataUsageSummaryPreferenceControllerTest {
final Intent intent = new Intent();
when(mDataUsageController.getDataUsageInfo()).thenReturn(info);
when(mDataUsageController.getDataUsageInfo(any())).thenReturn(info);
mController.setPlanValues(1 /* dataPlanCount */, LIMIT1, USAGE1);
mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo(null);
verify(mSummaryPreference).setLimitInfo("500 MB data warning / 1.00 GB data limit");
verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
CARRIER_NAME, 1 /* numPlans */, intent);
verify(mSummaryPreference).setChartEnabled(true);
@@ -113,7 +113,7 @@ public class DataUsageSummaryPreferenceControllerTest {
mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo("500 MB Data warning / 1.00 GB Data limit");
verify(mSummaryPreference).setLimitInfo("500 MB data warning / 1.00 GB data limit");
verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
CARRIER_NAME, 0 /* numPlans */, intent);
verify(mSummaryPreference).setChartEnabled(true);
@@ -130,7 +130,7 @@ public class DataUsageSummaryPreferenceControllerTest {
info.cycleEnd, null /* intent */);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo("500 MB Data warning / 1.00 GB Data limit");
verify(mSummaryPreference).setLimitInfo("500 MB data warning / 1.00 GB data limit");
verify(mSummaryPreference).setUsageInfo(
info.cycleEnd,
-1L /* snapshotTime */,
@@ -152,7 +152,7 @@ public class DataUsageSummaryPreferenceControllerTest {
info.cycleEnd, null /* intent */);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo("500 MB Data warning / 1.00 GB Data limit");
verify(mSummaryPreference).setLimitInfo("500 MB data warning / 1.00 GB data limit");
verify(mSummaryPreference).setUsageInfo(
info.cycleEnd,
-1L /* snapshotTime */,
@@ -162,6 +162,74 @@ public class DataUsageSummaryPreferenceControllerTest {
verify(mSummaryPreference).setChartEnabled(false);
}
@Test
public void testSummaryUpdate_noLimitNoWarning() {
final long now = System.currentTimeMillis();
final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
info.warningLevel = 0L;
info.limitLevel = 0L;
final Intent intent = new Intent();
when(mDataUsageController.getDataUsageInfo(any())).thenReturn(info);
mController.setPlanValues(0 /* dataPlanCount */, LIMIT1, USAGE1);
mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo(null);
}
@Test
public void testSummaryUpdate_warningOnly() {
final long now = System.currentTimeMillis();
final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
info.warningLevel = 1000000L;
info.limitLevel = 0L;
final Intent intent = new Intent();
when(mDataUsageController.getDataUsageInfo(any())).thenReturn(info);
mController.setPlanValues(0 /* dataPlanCount */, LIMIT1, USAGE1);
mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo("1.00 MB data warning");
}
@Test
public void testSummaryUpdate_limitOnly() {
final long now = System.currentTimeMillis();
final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
info.warningLevel = 0L;
info.limitLevel = 1000000L;
final Intent intent = new Intent();
when(mDataUsageController.getDataUsageInfo(any())).thenReturn(info);
mController.setPlanValues(0 /* dataPlanCount */, LIMIT1, USAGE1);
mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo("1.00 MB data limit");
}
@Test
public void testSummaryUpdate_limitAndWarning() {
final long now = System.currentTimeMillis();
final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
info.warningLevel = 1000000L;
info.limitLevel = 1000000L;
final Intent intent = new Intent();
when(mDataUsageController.getDataUsageInfo(any())).thenReturn(info);
mController.setPlanValues(0 /* dataPlanCount */, LIMIT1, USAGE1);
mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent);
mController.updateState(mSummaryPreference);
verify(mSummaryPreference).setLimitInfo("1.00 MB data warning / 1.00 MB data limit");
}
private DataUsageController.DataUsageInfo createTestDataUsageInfo(long now) {
DataUsageController.DataUsageInfo info = new DataUsageController.DataUsageInfo();
info.carrier = CARRIER_NAME;