diff options
author | 2021-03-23 18:39:16 +0800 | |
---|---|---|
committer | 2021-03-30 05:27:10 +0000 | |
commit | f52c07b730462b3d20be716444466b7fb74228ba (patch) | |
tree | b90ed15f19e1fda89f75f02d89786d0ba2b41d40 | |
parent | 64f83419987f126fe7bd1a0edfe95caa7076f8ac (diff) |
Support bottom text in UsageProgressBarPreference
- Add text view under progressbar
Bug: 177617478
Test: atest UsageProgressBarPreferenceTest
Change-Id: I8b6c00752d3a7d0b1281bb84904f32e3df3e0721
3 files changed, 49 insertions, 0 deletions
diff --git a/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml b/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml index f45105dc3311..31b3fe56b76a 100644 --- a/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml +++ b/packages/SettingsLib/UsageProgressBarPreference/res/layout/preference_usage_progress_bar.xml @@ -70,4 +70,13 @@ android:scaleY="2" android:layout_marginTop="4dp" android:max="100"/> + + <TextView + android:id="@+id/bottom_summary" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + android:ellipsize="marquee" + android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1" + android:textSize="14sp"/> </LinearLayout> 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 21859501c057..a2b1de25bd21 100644 --- a/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java +++ b/packages/SettingsLib/UsageProgressBarPreference/src/com/android/settingslib/widget/UsageProgressBarPreference.java @@ -44,6 +44,7 @@ public class UsageProgressBarPreference extends Preference { private CharSequence mUsageSummary; private CharSequence mTotalSummary; + private CharSequence mBottomSummary; private ImageView mCustomImageView; private int mPercent = -1; @@ -101,6 +102,15 @@ public class UsageProgressBarPreference extends Preference { notifyChanged(); } + /** Set bottom summary. */ + public void setBottomSummary(CharSequence bottomSummary) { + if (TextUtils.equals(mBottomSummary, bottomSummary)) { + return; + } + mBottomSummary = bottomSummary; + notifyChanged(); + } + /** Set percentage of the progress bar. */ public void setPercent(long usage, long total) { if (total == 0L || usage > total) { @@ -147,6 +157,14 @@ public class UsageProgressBarPreference extends Preference { totalSummary.setText(mTotalSummary); } + final TextView bottomSummary = (TextView) holder.findViewById(R.id.bottom_summary); + if (TextUtils.isEmpty(mBottomSummary)) { + bottomSummary.setVisibility(View.GONE); + } else { + bottomSummary.setVisibility(View.VISIBLE); + bottomSummary.setText(mBottomSummary); + } + final ProgressBar progressBar = (ProgressBar) holder.findViewById(android.R.id.progress); if (mPercent < 0) { progressBar.setIndeterminate(true); 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 fe76b06a9b61..cd78addf254f 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 @@ -92,6 +92,28 @@ public class UsageProgressBarPreferenceTest { } @Test + public void setBottomSummary_getCorrectSummary() { + final String expectedText = "Should last until about 7:45 PM"; + mUsageProgressBarPreference.setBottomSummary(expectedText); + + mUsageProgressBarPreference.onBindViewHolder(mViewHolder); + + final TextView bottomSummary = (TextView) mViewHolder.findViewById(R.id.bottom_summary); + assertThat(bottomSummary.getText()).isEqualTo(expectedText); + assertThat(bottomSummary.getVisibility()).isEqualTo(View.VISIBLE); + } + + @Test + public void setBottomSummary_emptyText_isGone() { + mUsageProgressBarPreference.setBottomSummary(null); + + mUsageProgressBarPreference.onBindViewHolder(mViewHolder); + + final TextView bottomSummary = (TextView) mViewHolder.findViewById(R.id.bottom_summary); + assertThat(bottomSummary.getVisibility()).isEqualTo(View.GONE); + } + + @Test public void setPercent_getCorrectProgress() { mUsageProgressBarPreference.setPercent(31, 80); |