diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2013-01-25 23:26:47 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2013-01-25 23:26:47 +0100 |
commit | 96aa72c0ab5869d3ade69974616b3f1d4c49ae72 (patch) | |
tree | 125d4a5a2839f561febe204ea9433da5ea5404e7 /src | |
parent | bf14dced03452e25b8031b336900ba33760850dc (diff) | |
download | AntennaPod-96aa72c0ab5869d3ade69974616b3f1d4c49ae72.zip |
Added OnClickListener for header view
Diffstat (limited to 'src')
-rw-r--r-- | src/de/danoeh/antennapod/adapter/OnItemlistHeaderClicked.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/de/danoeh/antennapod/adapter/OnItemlistHeaderClicked.java b/src/de/danoeh/antennapod/adapter/OnItemlistHeaderClicked.java new file mode 100644 index 000000000..14bb06051 --- /dev/null +++ b/src/de/danoeh/antennapod/adapter/OnItemlistHeaderClicked.java @@ -0,0 +1,55 @@ +package de.danoeh.antennapod.adapter; + +import de.danoeh.antennapod.R; +import android.content.res.TypedArray; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.ImageView; + +/** + * OnClickListener for the itemlist headers of feeditem lists. This class takes + * care of changing the appearance of the arrow on the left side of the header + * view. An instance of this class should be set as the OnClickListener of the + * header view. + */ +public class OnItemlistHeaderClicked implements OnClickListener { + private ImageView arrow; + private View header; + + private boolean isExpanded; + + /** + * Constructor + * + * @param header + * Reference to the header View of the itemlist. + * @param isExpanded + * true if the itemlist is currently expanded. + * */ + public OnItemlistHeaderClicked(View header, boolean isExpanded) { + if (header == null) + throw new IllegalArgumentException("Header view must not be null"); + this.header = header; + arrow = (ImageView) header.findViewById(R.id.imgvHeaderArrow); + this.isExpanded = isExpanded; + refreshArrowState(); + } + + private void refreshArrowState() { + TypedArray typeDrawables = header.getContext().obtainStyledAttributes( + new int[] { R.attr.navigation_collapse, + R.attr.navigation_expand }); + if (isExpanded) { + arrow.setImageDrawable(typeDrawables.getDrawable(0)); + } else { + arrow.setImageDrawable(typeDrawables.getDrawable(1)); + } + } + + @Override + public void onClick(View v) { + isExpanded = !isExpanded; + refreshArrowState(); + } + +} |