Merge "Fix UsageProgressBarPreference number pattern problem" into sc-dev

This commit is contained in:
Arc Wang
2021-04-23 01:57:30 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 6 deletions

View File

@@ -40,7 +40,7 @@ import java.util.regex.Pattern;
*/
public class UsageProgressBarPreference extends Preference {
private final Pattern mNumberPattern = Pattern.compile("[\\d]*\\.?[\\d]+");
private final Pattern mNumberPattern = Pattern.compile("[\\d]*[\\.,]?[\\d]+");
private CharSequence mUsageSummary;
private CharSequence mTotalSummary;

View File

@@ -75,20 +75,41 @@ public class UsageProgressBarPreferenceTest {
final TextView usageSummary = (TextView) mViewHolder.findViewById(R.id.usage_summary);
final SpannedString summary = new SpannedString(usageSummary.getText());
assertThat(summary.getSpans(0, summary.length(), AbsoluteSizeSpan.class).length)
.isEqualTo(1);
final AbsoluteSizeSpan[] spans = summary
.getSpans(0, summary.length(), AbsoluteSizeSpan.class);
assertThat(spans.length).isEqualTo(1);
assertThat(summary.getSpanStart(spans[0])).isEqualTo(0);
assertThat(summary.getSpanEnd(spans[0])).isEqualTo(2);
}
@Test
public void setUsageSummary_floatNumber_findAbsoluteSizeSpan() {
public void setUsageSummary_floatingPointNumber_findAbsoluteSizeSpan() {
mUsageProgressBarPreference.setUsageSummary("3.14Test");
mUsageProgressBarPreference.onBindViewHolder(mViewHolder);
final TextView usageSummary = (TextView) mViewHolder.findViewById(R.id.usage_summary);
final SpannedString summary = new SpannedString(usageSummary.getText());
assertThat(summary.getSpans(0, summary.length(), AbsoluteSizeSpan.class).length)
.isEqualTo(1);
final AbsoluteSizeSpan[] spans = summary
.getSpans(0, summary.length(), AbsoluteSizeSpan.class);
assertThat(spans.length).isEqualTo(1);
assertThat(summary.getSpanStart(spans[0])).isEqualTo(0);
assertThat(summary.getSpanEnd(spans[0])).isEqualTo(4);
}
@Test
public void setUsageSummary_commaFloatingPointNumber_findAbsoluteSizeSpan() {
mUsageProgressBarPreference.setUsageSummary("3,14Test");
mUsageProgressBarPreference.onBindViewHolder(mViewHolder);
final TextView usageSummary = (TextView) mViewHolder.findViewById(R.id.usage_summary);
final SpannedString summary = new SpannedString(usageSummary.getText());
final AbsoluteSizeSpan[] spans = summary
.getSpans(0, summary.length(), AbsoluteSizeSpan.class);
assertThat(spans.length).isEqualTo(1);
assertThat(summary.getSpanStart(spans[0])).isEqualTo(0);
assertThat(summary.getSpanEnd(spans[0])).isEqualTo(4);
}
@Test