Merge "Change text for data warning and data limit." into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b673aaadc9
@@ -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>
|
||||
|
||||
|
@@ -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) {
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user