diff options
3 files changed, 27 insertions, 9 deletions
diff --git a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java index 5845f6218b5a..6bf61ae70312 100644 --- a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java +++ b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java @@ -67,6 +67,7 @@ public class BarView extends LinearLayout { * Updates the view with a {@link BarViewInfo}. */ void updateView(BarViewInfo barViewInfo) { + setOnClickListener(barViewInfo.getClickListener()); //Set height of bar view mBarView.getLayoutParams().height = barViewInfo.getNormalizedHeight(); mIcon.setImageDrawable(barViewInfo.getIcon()); @@ -91,9 +92,9 @@ public class BarView extends LinearLayout { setGravity(Gravity.CENTER); mBarView = findViewById(R.id.bar_view); - mIcon = (ImageView) findViewById(R.id.icon_view); - mBarTitle = (TextView) findViewById(R.id.bar_title); - mBarSummary = (TextView) findViewById(R.id.bar_summary); + mIcon = findViewById(R.id.icon_view); + mBarTitle = findViewById(R.id.bar_title); + mBarSummary = findViewById(R.id.bar_summary); } private void setOnClickListner(View.OnClickListener listener) { diff --git a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarViewInfo.java b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarViewInfo.java index 2acbcecf6520..409f9ea05889 100644 --- a/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarViewInfo.java +++ b/packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarViewInfo.java @@ -31,7 +31,7 @@ import java.util.Comparator; public class BarViewInfo implements Comparable<BarViewInfo> { private final Drawable mIcon; - private View.OnClickListener mListener; + private View.OnClickListener mClickListener; @StringRes private int mSummary; // A number indicates this bar's height. The larger number shows a higher bar view. @@ -52,6 +52,13 @@ public class BarViewInfo implements Comparable<BarViewInfo> { mSummary = summary; } + /** + * Set a click listener for bar view. + */ + public void setClickListener(@Nullable View.OnClickListener listener) { + mClickListener = listener; + } + @Override public int compareTo(BarViewInfo other) { // Descending order @@ -67,10 +74,6 @@ public class BarViewInfo implements Comparable<BarViewInfo> { mSummary = resId; } - void setClickListener(@Nullable View.OnClickListener listener) { - mListener = listener; - } - Drawable getIcon() { return mIcon; } @@ -80,7 +83,7 @@ public class BarViewInfo implements Comparable<BarViewInfo> { } View.OnClickListener getClickListener() { - return mListener; + return mClickListener; } @StringRes 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 371c3d46dfb4..d4e74810ea3f 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 @@ -208,4 +208,18 @@ public class BarChartPreferenceTest { assertThat(mBarView1.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mBarView1.getSummary()).isEqualTo(mContext.getText(R.string.debug_app)); } + + @Test + public void setAllBarViewsInfo_setClickListenerForBarView_barViewAttachClickListener() { + final BarViewInfo viewInfo = new BarViewInfo(mIcon, 30 /* barNumber */, R.string.debug_app); + viewInfo.setClickListener(v -> { + }); + final BarViewInfo[] barViewsInfo = new BarViewInfo[]{viewInfo}; + + mPreference.setAllBarViewsInfo(barViewsInfo); + mPreference.onBindViewHolder(mHolder); + + assertThat(mBarView1.getVisibility()).isEqualTo(View.VISIBLE); + assertThat(mBarView1.hasOnClickListeners()).isTrue(); + } } |