diff options
2 files changed, 17 insertions, 0 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 af64a1dc2282..21859501c057 100644 --- a/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java +++ b/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java @@ -160,6 +160,7 @@ public class UsageProgressBarPreference extends Preference { customLayout.removeAllViews(); customLayout.setVisibility(View.GONE); } else { + customLayout.removeAllViews(); customLayout.addView(mCustomImageView); customLayout.setVisibility(View.VISIBLE); } 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 1a8477d9b86e..fe76b06a9b61 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 @@ -127,4 +127,20 @@ public class UsageProgressBarPreferenceTest { assertThat(customContent.getChildAt(0)).isEqualTo(imageView); assertThat(customContent.getVisibility()).isEqualTo(View.VISIBLE); } + + @Test + public void setCustomContent_setImageViewTwice_oneAndLatestChild() { + final ImageView imageViewLegacy = mock(ImageView.class); + final ImageView imageViewNew = mock(ImageView.class); + mUsageProgressBarPreference.setCustomContent(imageViewLegacy); + mUsageProgressBarPreference.setCustomContent(imageViewNew); + + mUsageProgressBarPreference.onBindViewHolder(mViewHolder); + + final FrameLayout customContent = + (FrameLayout) mViewHolder.findViewById(R.id.custom_content); + assertThat(customContent.getChildCount()).isEqualTo(1); + assertThat(customContent.getChildAt(0)).isEqualTo(imageViewNew); + assertThat(customContent.getVisibility()).isEqualTo(View.VISIBLE); + } } |