summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Arc Wang <arcwang@google.com> 2021-04-20 15:55:20 +0800
committer Arc Wang <arcwang@google.com> 2021-04-20 15:55:20 +0800
commitf891cef5723c7b1ff6d6628e18e4feb48b0ac85e (patch)
treeaba997d53b5ba1c4c318063ab81e25300ae5b8c1
parent05ccc44cb433268084e2f171f68ff7ab935a9d50 (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
-rw-r--r--packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java9
-rw-r--r--packages/SettingsLib/tests/integ/src/com/android/settingslib/widget/UsageProgressBarPreferenceTest.java11
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 */);