Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7081e7f5 authored by tmfang's avatar tmfang
Browse files

Add click listener for each bar view.

Per spec, each bar view can launch different page.

Test: manual test, robotest
Change-Id: I26f05ee7417fcb8bc1048f680795ee759ea1c30b
Fixes: 117623686
parent 7989dfc6
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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) {
+9 −6
Original line number Diff line number Diff line
@@ -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
+14 −0
Original line number Diff line number Diff line
@@ -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();
    }
}