In Data Usage screen, add over-limit state.
Bug: 70950124 Test: make RunSettingsRoboTests ROBOTEST_FILTER=DataUsageSummaryPreferenceTest Change-Id: Ieec0c486c6a5451cd5983f02e202ddac3413a602
This commit is contained in:
@@ -8745,9 +8745,12 @@
|
|||||||
<!-- Data usage title text [CHAR LIMIT=30] -->
|
<!-- Data usage title text [CHAR LIMIT=30] -->
|
||||||
<string name="data_usage_title">Primary data</string>
|
<string name="data_usage_title">Primary data</string>
|
||||||
|
|
||||||
<!-- Data usage string [CHAR LIMIT=30] -->
|
<!-- Data usage remaining string [CHAR LIMIT=30] -->
|
||||||
<string name="data_used"><xliff:g name="bytes" example="2 GB">^1</xliff:g> used</string>
|
<string name="data_used"><xliff:g name="bytes" example="2 GB">^1</xliff:g> used</string>
|
||||||
|
|
||||||
|
<!-- Data usage over limit string [CHAR LIMIT=30] -->
|
||||||
|
<string name="data_overusage"><xliff:g name="bytes" example="2 GB">^1</xliff:g> over</string>
|
||||||
|
|
||||||
<!-- Optional part of data usage showing the remaining amount [CHAR LIMIT=30] -->
|
<!-- Optional part of data usage showing the remaining amount [CHAR LIMIT=30] -->
|
||||||
<string name="data_remaining"><xliff:g name="bytes" example="2 GB">^1</xliff:g> left</string>
|
<string name="data_remaining"><xliff:g name="bytes" example="2 GB">^1</xliff:g> left</string>
|
||||||
|
|
||||||
|
@@ -131,16 +131,7 @@ public class DataUsageSummaryPreference extends Preference {
|
|||||||
holder.findViewById(R.id.label_bar).setVisibility(View.GONE);
|
holder.findViewById(R.id.label_bar).setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
TextView usageNumberField = (TextView) holder.findViewById(R.id.data_usage_view);
|
updateDataUsageLabels(holder);
|
||||||
usageNumberField.setText(TextUtils.expandTemplate(
|
|
||||||
getContext().getString(R.string.data_used),
|
|
||||||
Formatter.formatFileSize(getContext(), mDataplanUse)));
|
|
||||||
if (mHasMobileData && mNumPlans >= 0 && mDataplanSize > 0L) {
|
|
||||||
TextView usageRemainingField = (TextView) holder.findViewById(R.id.data_remaining_view);
|
|
||||||
usageRemainingField.setText(
|
|
||||||
TextUtils.expandTemplate(getContext().getText(R.string.data_remaining),
|
|
||||||
Formatter.formatFileSize(getContext(), mDataplanSize - mDataplanUse)));
|
|
||||||
}
|
|
||||||
|
|
||||||
TextView usageTitle = (TextView) holder.findViewById(R.id.usage_title);
|
TextView usageTitle = (TextView) holder.findViewById(R.id.usage_title);
|
||||||
usageTitle.setVisibility(mNumPlans > 1 ? View.VISIBLE : View.GONE);
|
usageTitle.setVisibility(mNumPlans > 1 ? View.VISIBLE : View.GONE);
|
||||||
@@ -169,6 +160,26 @@ public class DataUsageSummaryPreference extends Preference {
|
|||||||
limitInfo.setText(mLimitInfoText);
|
limitInfo.setText(mLimitInfoText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateDataUsageLabels(PreferenceViewHolder holder) {
|
||||||
|
TextView usageNumberField = (TextView) holder.findViewById(R.id.data_usage_view);
|
||||||
|
usageNumberField.setText(TextUtils.expandTemplate(
|
||||||
|
getContext().getString(R.string.data_used),
|
||||||
|
Formatter.formatFileSize(getContext(), mDataplanUse)));
|
||||||
|
if (mHasMobileData && mNumPlans >= 0 && mDataplanSize > 0L) {
|
||||||
|
TextView usageRemainingField = (TextView) holder.findViewById(R.id.data_remaining_view);
|
||||||
|
long dataRemaining = mDataplanSize - mDataplanUse;
|
||||||
|
if (dataRemaining >= 0) {
|
||||||
|
usageRemainingField.setText(
|
||||||
|
TextUtils.expandTemplate(getContext().getText(R.string.data_remaining),
|
||||||
|
Formatter.formatFileSize(getContext(), dataRemaining)));
|
||||||
|
} else {
|
||||||
|
usageRemainingField.setText(
|
||||||
|
TextUtils.expandTemplate(getContext().getText(R.string.data_overusage),
|
||||||
|
Formatter.formatFileSize(getContext(), -dataRemaining)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setCarrierInfo(TextView carrierInfo, CharSequence carrierName, long updateAge) {
|
private void setCarrierInfo(TextView carrierInfo, CharSequence carrierName, long updateAge) {
|
||||||
if (mNumPlans > 0 && updateAge >= 0L) {
|
if (mNumPlans > 0 && updateAge >= 0L) {
|
||||||
carrierInfo.setVisibility(View.VISIBLE);
|
carrierInfo.setVisibility(View.VISIBLE);
|
||||||
|
@@ -207,6 +207,7 @@ public class DataUsageSummaryPreferenceTest {
|
|||||||
mSummaryPreference.setLabels("0.0 GB", "5.0 GB");
|
mSummaryPreference.setLabels("0.0 GB", "5.0 GB");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testSetUsageAndRemainingInfo_withUsageInfo_dataUsageAndRemainingShown() {
|
public void testSetUsageAndRemainingInfo_withUsageInfo_dataUsageAndRemainingShown() {
|
||||||
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, DUMMY_CARRIER, 1 /* numPlans */,
|
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, DUMMY_CARRIER, 1 /* numPlans */,
|
||||||
new Intent());
|
new Intent());
|
||||||
@@ -217,6 +218,17 @@ public class DataUsageSummaryPreferenceTest {
|
|||||||
assertThat(mDataRemaining.getText().toString()).isEqualTo("9.00 MB left");
|
assertThat(mDataRemaining.getText().toString()).isEqualTo("9.00 MB left");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetUsageInfo_withDataOverusage() {
|
||||||
|
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, DUMMY_CARRIER, 1 /* numPlans */,
|
||||||
|
new Intent());
|
||||||
|
mSummaryPreference.setUsageNumbers(11_000_000L, 10_000_000L, true);
|
||||||
|
|
||||||
|
bindViewHolder();
|
||||||
|
assertThat(mDataUsed.getText().toString()).isEqualTo("11.00 MB used");
|
||||||
|
assertThat(mDataRemaining.getText().toString()).isEqualTo("1.00 MB over");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSetUsageInfo_withUsageInfo_dataUsageShown() {
|
public void testSetUsageInfo_withUsageInfo_dataUsageShown() {
|
||||||
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, DUMMY_CARRIER, 0 /* numPlans */,
|
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, DUMMY_CARRIER, 0 /* numPlans */,
|
||||||
|
Reference in New Issue
Block a user