package com.gaiagps.iburn.view;
import android.content.Context;
import android.support.annotation.NonNull;
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 day and type
* <p/>
* Clients register for feedback with
* {@link #setReceiver(BrowseListHeader.PlayaListViewHeaderReceiver)}
* <p/>
* Created by davidbrodsky on 8/2/14.
*/
public class BrowseListHeader extends RelativeLayout {
public enum BrowseSelection { ART, CAMPS, EVENT }
private BrowseSelectionListener listener;
protected TextView art;
protected TextView camp;
protected TextView events;
public BrowseListHeader(Context context) {
super(context);
init(context);
}
public BrowseListHeader(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public BrowseListHeader(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
public void setBrowseSelectionListener(BrowseSelectionListener listener) {
this.listener = listener;
}
protected void init(Context context) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.list_view_header_three, this, false);
art = (TextView) v.findViewById(R.id.artSelection);
camp = (TextView) v.findViewById(R.id.campSelection);
events = (TextView) v.findViewById(R.id.eventSelection);
camp.setSelected(true);
setupTouchListeners();
addView(v);
}
protected void setupTouchListeners() {
art.setTag(BrowseSelection.ART);
camp.setTag(BrowseSelection.CAMPS);
events.setTag(BrowseSelection.EVENT);
art.setOnClickListener(mOnClickListener);
camp.setOnClickListener(mOnClickListener);
events.setOnClickListener(mOnClickListener);
}
public interface BrowseSelectionListener {
void onSelectionChanged(BrowseListHeader.BrowseSelection selection);
}
protected OnClickListener mOnClickListener = new OnClickListener() {
@Override
public void onClick(@NonNull final View v) {
boolean wasSelected = v.isSelected();
if (!v.equals(art)) art.setSelected(false);
if (!v.equals(camp)) camp.setSelected(false);
if (!v.equals(events)) events.setSelected(false);
if (!wasSelected) {
v.setSelected(true);
if (listener != null) listener.onSelectionChanged((BrowseSelection) v.getTag());
}
}
};
}