package com.abewy.android.apps.klyph.adapter.fql;
import android.view.View;
import android.widget.Button;
import com.abewy.android.apps.klyph.R;
import com.abewy.android.apps.klyph.adapter.KlyphAdapter;
import com.abewy.android.apps.klyph.adapter.holder.EventResponseHolder;
import com.abewy.android.apps.klyph.core.fql.Event;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
import com.abewy.android.apps.klyph.core.util.AttrUtil;
import com.abewy.android.apps.klyph.fragment.EventFragment.EventResponseItem;
public class EventResponseAdapter extends KlyphAdapter
{
public EventResponseAdapter()
{
super();
}
@Override
protected int getLayout()
{
return R.layout.item_event_response;
}
@Override
protected void attachHolder(View view)
{
view.setTag(new EventResponseHolder((Button) view
.findViewById(R.id.event_going_button), (Button) view.findViewById(R.id.event_unsure_button),
(Button) view.findViewById(R.id.event_declined_button)));
}
@Override
protected void mergeViewWithData(View view, GraphObject data)
{
final EventResponseHolder holder = (EventResponseHolder) view.getTag();
EventResponseItem eventResponseItem = (EventResponseItem) data;
final Event event = eventResponseItem.getEvent();
setButtonDrawable(holder, event);
if (eventResponseItem.getAttendButtonListener() != null)
{
holder.getEventGoingButton().setOnClickListener(eventResponseItem.getAttendButtonListener());
}
if (eventResponseItem.getUnsureButtonListener() != null)
{
holder.getEventUnsureButton().setOnClickListener(eventResponseItem.getUnsureButtonListener());
}
if (eventResponseItem.getDeclineButtonListener() != null)
{
holder.getEventDeclinedButton().setOnClickListener(eventResponseItem.getDeclineButtonListener());
}
}
private void setButtonDrawable(EventResponseHolder holder, Event event)
{
boolean isGoing = event.isUserAttendingEvent();
boolean isUnsure = event.isUserUnsureEvent();
boolean isDeclined = event.isUserDeclinedEvent();
setButtonDrawable(holder.getEventGoingButton(), isGoing ? R.attr.eventGoingSelectedIcon : R.attr.eventGoingIcon);
setButtonDrawable(holder.getEventUnsureButton(), isUnsure ? R.attr.eventUnsureSelectedIcon
: R.attr.eventUnsureIcon);
setButtonDrawable(holder.getEventDeclinedButton(), isDeclined ? R.attr.eventDeclinedSelectedIcon
: R.attr.eventDeclinedIcon);
}
private void setButtonDrawable(Button button, int drawableAttr)
{
button.setCompoundDrawablesWithIntrinsicBounds(AttrUtil.getDrawable(getContext(button), drawableAttr), null, null,
null);
}
}