package com.thebluealliance.androidclient.listitems;
import com.thebluealliance.androidclient.R;
import com.thebluealliance.androidclient.listeners.EventClickListener;
import com.thebluealliance.androidclient.listeners.ModelSettingsClickListener;
import com.thebluealliance.androidclient.models.Event;
import com.thebluealliance.androidclient.types.ModelType;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.Serializable;
public class EventListElement extends ListElement implements Serializable {
public final String eventName;
public final String eventDates;
public final String eventLocation;
public final String eventKey;
public final int eventYear;
public final boolean showMyTba;
public EventListElement(Event event) {
super(event.getKey());
eventKey = "";
eventName = event.getName();
eventDates = event.getDateString();
eventLocation = event.getLocation();
eventYear = event.getYear();
this.showMyTba = false;
}
public EventListElement(String key, int year, String name, String dates, String location, boolean showMyTba) {
super(key);
eventKey = key;
eventName = name;
eventDates = dates;
eventLocation = location;
eventYear = year;
this.showMyTba = showMyTba;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof EventListElement)) {
return false;
}
EventListElement element = ((EventListElement) o);
return eventName.equals(element.eventName)
&& eventDates.equals(element.eventDates)
&& eventLocation.equals(element.eventLocation)
&& eventKey.equals(element.eventKey);
}
public String getEventKey() {
return eventKey;
}
@Override
public View getView(Context context, LayoutInflater inflater, View convertView) {
ViewHolder holder;
if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) {
convertView = inflater.inflate(R.layout.list_item_event, null);
holder = new ViewHolder();
holder.name = (TextView) convertView.findViewById(R.id.event_name);
holder.dates = (TextView) convertView.findViewById(R.id.event_dates);
holder.location = (TextView) convertView.findViewById(R.id.event_location);
holder.modelSettings = (ImageView) convertView.findViewById(R.id.model_settings);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
/* When rendering in mytba list, show year with event name */
if (showMyTba) {
holder.name.setText(String.format("%1$d %2$s", eventYear, eventName));
} else {
holder.name.setText(eventName);
}
holder.dates.setText(eventDates);
holder.location.setText(eventLocation);
if (showMyTba) {
// When rendered in MyTba, add a specific click listener because we can't add
// one to the parent ListView
convertView.setOnClickListener(new EventClickListener(context, eventKey));
holder.modelSettings.setOnClickListener(new ModelSettingsClickListener(context, eventKey, ModelType.EVENT));
}
holder.dates.setVisibility(showMyTba ? View.GONE : View.VISIBLE);
holder.modelSettings.setVisibility(showMyTba ? View.VISIBLE : View.GONE);
return convertView;
}
private static class ViewHolder {
TextView name;
TextView dates;
TextView location;
ImageView modelSettings;
}
}