diff options
author | 2021-04-20 15:55:20 +0800 | |
---|---|---|
committer | 2021-04-20 15:55:20 +0800 | |
commit | f891cef5723c7b1ff6d6628e18e4feb48b0ac85e (patch) | |
tree | aba997d53b5ba1c4c318063ab81e25300ae5b8c1 | |
parent | 05ccc44cb433268084e2f171f68ff7ab935a9d50 (diff) |
Fix UsageProgressBarPreference progress bug when zero total size
When zero total size, should update progress to zero.
Bug: 185869705
Test: atest UsageProgressBarPreferenceTest
Change-Id: I02dae2fbea23b56dad07941c614d9ef3500eeae4
2 files changed, 19 insertions, 1 deletions
diff --git a/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java b/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java index fbf325c7603a..0a8570b1b180 100644 --- a/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java +++ b/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java @@ -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); diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java index cd78addf254f..83bd5703faf1 100644 --- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java +++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java @@ -125,6 +125,17 @@ public class UsageProgressBarPreferenceTest { } @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 */); |