summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarView.java7
-rw-r--r--packages/SettingsLib/BarChartPreference/src/com/android/settingslib/widget/BarViewInfo.java15
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/BarChartPreferenceTest.java14
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();
+ }
}