Merge "Fix UsageProgressBarPreference progress bug when zero total size" into sc-dev am: b0ea152982

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14248586

Change-Id: I229a42f516783bdee641ced53e4cd77cacfcdbe4
This commit is contained in:
Arc Wang
2021-04-21 01:41:00 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 1 deletions

View File

@@ -113,7 +113,14 @@ public class UsageProgressBarPreference extends Preference {
/** Set percentage of the progress bar. */
public void setPercent(long usage, long total) {
if (total == 0L || usage > total) {
if (usage > total) {
return;
}
if (total == 0L) {
if (mPercent != 0) {
mPercent = 0;
notifyChanged();
}
return;
}
final int percent = (int) (usage / (double) total * 100);

View File

@@ -124,6 +124,17 @@ public class UsageProgressBarPreferenceTest {
assertThat(progressBar.getProgress()).isEqualTo((int) (31.0f / 80 * 100));
}
@Test
public void setPercent_totalSizeZero_getProgressZero() {
mUsageProgressBarPreference.setPercent(0 /* usage */, 0 /* total */);
mUsageProgressBarPreference.onBindViewHolder(mViewHolder);
final ProgressBar progressBar = (ProgressBar) mViewHolder
.findViewById(android.R.id.progress);
assertThat(progressBar.getProgress()).isEqualTo(0);
}
@Test
public void setCustomContent_setNullImageView_noChild() {
mUsageProgressBarPreference.setCustomContent(null /* imageView */);