From 418137e5ef2e72f290df28369a9cbb11fc406811 Mon Sep 17 00:00:00 2001 From: Joel Galenson Date: Thu, 27 Dec 2018 09:39:03 -0800 Subject: [PATCH] Show the bar chart detail after hiding it. In a previous commit I made the bar chart detail text GONE when no text was provided to avoid a crash. But I forgot to mark it visible when text is passed afterwards. This fixes that bug. Test: Create bar chart with an empty detail text, set some text, and then see the detail text. Test: atest com.android.settingslib.widget.BarChartPreferenceTest Change-Id: I4a352245c3dc7b02ab3d1de21c348f2d431e95cf --- .../settingslib/widget/BarChartPreference.java | 1 + .../settingslib/widget/BarChartPreferenceTest.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java index 305862af505b9..0a4b24c8918bd 100644 --- a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java +++ b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarChartPreference.java @@ -168,6 +168,7 @@ public class BarChartPreference extends Preference { if (mDetailsId == 0) { detailsView.setVisibility(View.GONE); } else { + detailsView.setVisibility(View.VISIBLE); detailsView.setText(mDetailsId); detailsView.setOnClickListener(mDetailsOnClickListener); } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java index 375b45cf46d05..96e8995579f73 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java @@ -80,6 +80,20 @@ public class BarChartPreferenceTest { assertThat(mDetailsView.getVisibility()).isEqualTo(View.GONE); } + @Test + public void onBindViewHolder_notSetDetailsRes_barChartDetailsViewIsGoneThenReappears() { + // We don't call BarChartPreference#setBarChartDetails yet. + mPreference.onBindViewHolder(mHolder); + + assertThat(mDetailsView.getVisibility()).isEqualTo(View.GONE); + + mPreference.setBarChartDetails(R.string.debug_app); + mPreference.onBindViewHolder(mHolder); + + assertThat(mDetailsView.getVisibility()).isEqualTo(View.VISIBLE); + assertThat(mDetailsView.getText()).isEqualTo(mContext.getText(R.string.debug_app)); + } + @Test public void setBarChartDetailsRes_setDetailsRes_showInBarChartDetails() { mPreference.setBarChartDetails(R.string.debug_app);