package com.gaiagps.iburn.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gaiagps.iburn.R;
/**
* A ListView header presenting filter options for Art featured in the audio tour
* <p>
* Clients register for feedback with
* {@link #setListener(Listener)}
* <p>
* Created by davidbrodsky on 8/2/14.
*/
public class ArtListHeader extends RelativeLayout {
protected TextView mAllArt;
protected TextView mAudioTourArt;
protected Listener mListener;
// Don't use selected state, because we don't want the selected appearance
private boolean mShowAudioTourOnly;
public ArtListHeader(Context context) {
super(context);
init(context);
}
public ArtListHeader(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public ArtListHeader(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
/**
* Interface for users to receive feedback from this view
*/
public interface Listener {
void onSelectionChanged(boolean showAudioTourOnly);
}
/**
* Clicklistener for Sort buttons
*/
protected OnClickListener mOnClickListener = view -> {
mShowAudioTourOnly = !mShowAudioTourOnly;
if (mShowAudioTourOnly) {
mAudioTourArt.setSelected(true);
mAllArt.setSelected(false);
} else {
mAudioTourArt.setSelected(false);
mAllArt.setSelected(true);
}
dispatchSelection(mShowAudioTourOnly);
};
protected void init(Context context) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.list_view_header_two, this, false);
mAllArt = (TextView) v.findViewById(R.id.typeFilter);
mAllArt.setText(R.string.all_art);
mAllArt.setSelected(true);
mAudioTourArt = (TextView) v.findViewById(R.id.dateFilter);
mAudioTourArt.setText(R.string.audio_tour_art_only);
setupTouchListeners();
addView(v);
}
public void setListener(Listener listener) {
this.mListener = listener;
}
protected void setupTouchListeners() {
mAllArt.setOnClickListener(mOnClickListener);
mAudioTourArt.setOnClickListener(mOnClickListener);
}
protected void dispatchSelection(boolean showAudioTourOnly) {
if (mListener != null) {
mListener.onSelectionChanged(showAudioTourOnly);
}
}
}