Change DataUsageSummaryPreference.setLimitInfo(String text) to take CharSequence

"CharSequence is more correct" than String.
Change method to take in CharSequence parameter and modify callers/tests.

Bug: b/74960034

Test: RunSettingsRoboTests:DataUsageSummaryPreferenceTest and RunSettingsRoboTests:DataUsageSummaryPreferenceControllerTest
Change-Id: Ic83bde57bafff8416c0bd86b1ff2beb44ea12d0e
This commit is contained in:
vincentpeng
2018-03-28 10:46:17 +08:00
parent e008845287
commit 665b16bbfc
4 changed files with 53 additions and 14 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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<CharSequence> 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<CharSequence> 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<CharSequence> 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<CharSequence> 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<CharSequence> 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<CharSequence> 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<CharSequence> 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

View File

@@ -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();