diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java index 6b00a6891a3..1e90282d1ba 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java @@ -67,7 +67,7 @@ public class DataUsageSummaryPreference extends Preference { private long mSnapshotTimeMs; /** Name of carrier, or null if not available */ private CharSequence mCarrierName; - private String mLimitInfoText; + private CharSequence mLimitInfoText; private Intent mLaunchIntent; /** Progress to display on ProgressBar */ @@ -88,7 +88,7 @@ public class DataUsageSummaryPreference extends Preference { setLayoutResource(R.layout.data_usage_summary_preference); } - public void setLimitInfo(String text) { + public void setLimitInfo(CharSequence text) { if (!Objects.equals(text, mLimitInfoText)) { mLimitInfoText = text; notifyChanged(); @@ -167,8 +167,7 @@ public class DataUsageSummaryPreference extends Preference { } TextView limitInfo = (TextView) holder.findViewById(R.id.data_limits); - limitInfo.setVisibility( - mLimitInfoText == null || mLimitInfoText.isEmpty() ? View.GONE : View.VISIBLE); + limitInfo.setVisibility(TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE); limitInfo.setText(mLimitInfoText); } diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java index dea71fe5d9e..55e7392966d 100644 --- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java +++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java @@ -203,15 +203,15 @@ public class DataUsageSummaryPreferenceController extends BasePreferenceControll summaryPreference.setLimitInfo(TextUtils.expandTemplate( mContext.getText(R.string.cell_data_warning_and_limit), Formatter.formatFileSize(mContext, info.warningLevel), - Formatter.formatFileSize(mContext, info.limitLevel)).toString()); + Formatter.formatFileSize(mContext, info.limitLevel))); } else if (info.warningLevel > 0) { summaryPreference.setLimitInfo(TextUtils.expandTemplate( mContext.getText(R.string.cell_data_warning), - Formatter.formatFileSize(mContext, info.warningLevel)).toString()); + Formatter.formatFileSize(mContext, info.warningLevel))); } else if (info.limitLevel > 0) { summaryPreference.setLimitInfo(TextUtils.expandTemplate( mContext.getText(R.string.cell_data_limit), - Formatter.formatFileSize(mContext, info.limitLevel)).toString()); + Formatter.formatFileSize(mContext, info.limitLevel))); } else { summaryPreference.setLimitInfo(null); } diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java index cd7de0056f3..9a38305741f 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java @@ -53,6 +53,7 @@ import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; +import org.mockito.ArgumentCaptor; import java.util.concurrent.TimeUnit; @@ -136,7 +137,12 @@ 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"); + + ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); + verify(mSummaryPreference).setLimitInfo(captor.capture()); + CharSequence value = captor.getValue(); + assertThat(value.toString()).isEqualTo("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); @@ -154,7 +160,12 @@ 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"); + + ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); + verify(mSummaryPreference).setLimitInfo(captor.capture()); + CharSequence value = captor.getValue(); + assertThat(value.toString()).isEqualTo("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); @@ -171,7 +182,11 @@ public class DataUsageSummaryPreferenceControllerTest { info.cycleEnd, null /* intent */); mController.updateState(mSummaryPreference); - verify(mSummaryPreference).setLimitInfo("500 MB data warning / 1.00 GB data limit"); + ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); + verify(mSummaryPreference).setLimitInfo(captor.capture()); + CharSequence value = captor.getValue(); + assertThat(value.toString()).isEqualTo("500 MB data warning / 1.00 GB data limit"); + verify(mSummaryPreference).setUsageInfo( info.cycleEnd, -1L /* snapshotTime */, @@ -193,7 +208,11 @@ public class DataUsageSummaryPreferenceControllerTest { info.cycleEnd, null /* intent */); mController.updateState(mSummaryPreference); - verify(mSummaryPreference).setLimitInfo("500 MB data warning / 1.00 GB data limit"); + ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); + verify(mSummaryPreference).setLimitInfo(captor.capture()); + CharSequence value = captor.getValue(); + assertThat(value.toString()).isEqualTo("500 MB data warning / 1.00 GB data limit"); + verify(mSummaryPreference).setUsageInfo( info.cycleEnd, -1L /* snapshotTime */, @@ -234,7 +253,11 @@ public class DataUsageSummaryPreferenceControllerTest { mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent); mController.updateState(mSummaryPreference); - verify(mSummaryPreference).setLimitInfo("1.00 MB data warning"); + + ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); + verify(mSummaryPreference).setLimitInfo(captor.capture()); + CharSequence value = captor.getValue(); + assertThat(value.toString()).isEqualTo("1.00 MB data warning"); } @Test @@ -251,7 +274,11 @@ public class DataUsageSummaryPreferenceControllerTest { mController.setCarrierValues(CARRIER_NAME, now - UPDATE_BACKOFF_MS, info.cycleEnd, intent); mController.updateState(mSummaryPreference); - verify(mSummaryPreference).setLimitInfo("1.00 MB data limit"); + + ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); + verify(mSummaryPreference).setLimitInfo(captor.capture()); + CharSequence value = captor.getValue(); + assertThat(value.toString()).isEqualTo("1.00 MB data limit"); } @Test @@ -268,7 +295,11 @@ public class DataUsageSummaryPreferenceControllerTest { 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"); + + ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); + verify(mSummaryPreference).setLimitInfo(captor.capture()); + CharSequence value = captor.getValue(); + assertThat(value.toString()).isEqualTo("1.00 MB data warning / 1.00 MB data limit"); } @Test diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java index eee961de569..436ceaf74f3 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java @@ -304,6 +304,15 @@ public class DataUsageSummaryPreferenceTest { assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE); } + @Test + public void testSetLimitInfo_withEmptyLimitInfo_dataLimitsNotShown() { + final String emptyLimitText = ""; + mSummaryPreference.setLimitInfo(emptyLimitText); + + bindViewHolder(); + assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE); + } + @Test public void testSetChartEnabledFalse_hidesLabelBar() { setValidLabels();