Merge "Clear UsageProgressBarPreference image view before setting images" into sc-dev

This commit is contained in:
Wesley Wang
2021-03-09 05:47:18 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 0 deletions

View File

@@ -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);
}

View File

@@ -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);
}
}