package com.thebluealliance.androidclient.listitems;
import com.thebluealliance.androidclient.R;
import com.thebluealliance.androidclient.listeners.DistrictClickListener;
import com.thebluealliance.androidclient.listeners.ModelSettingsClickListener;
import com.thebluealliance.androidclient.models.District;
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;
public class DistrictListElement extends ListElement {
public final int numEvents;
public final String key;
public final String name;
public final int year;
public final boolean showMyTba;
public DistrictListElement(District district, int numEvents, boolean showMyTba)
{
super(district.getKey());
key = district.getKey();
year = district.getYear();
name = district.getDisplayName();
this.numEvents = numEvents;
this.showMyTba = showMyTba;
}
@Override
public View getView(Context c, LayoutInflater inflater, View convertView) {
ViewHolder holder;
if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) {
convertView = inflater.inflate(R.layout.list_item_district, null);
holder = new ViewHolder();
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.events = (TextView) convertView.findViewById(R.id.num_events);
holder.myTbaSettings = (ImageView) convertView.findViewById(R.id.model_settings);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
/* For mytba list, show the year as well */
if (showMyTba) {
holder.title.setText(String.format("%1$d %2$s District", year, name));
} else {
holder.title.setText(String.format("%1$s District", name));
}
if (numEvents != -1) {
holder.events.setVisibility(View.VISIBLE);
holder.events.setText(String.format("%1$d Events", numEvents));
} else {
holder.events.setVisibility(View.GONE);
}
convertView.setOnClickListener(new DistrictClickListener(c, key));
holder.myTbaSettings.setVisibility(showMyTba ? View.VISIBLE : View.GONE);
if (showMyTba) {
holder.myTbaSettings.setOnClickListener(new ModelSettingsClickListener(c, key, ModelType.DISTRICT));
holder.title.setTextAppearance(c, R.style.normalText);
}
return convertView;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof DistrictListElement)) {
return false;
}
DistrictListElement element = (DistrictListElement) o;
return numEvents == element.numEvents
&& key.equals(element.key);
}
private static class ViewHolder {
TextView title;
TextView events;
ImageView myTbaSettings;
}
}