package com.sabdroidex.adapters; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.sabdroidex.R; import com.sabdroidex.data.sickbeard.Episode; import com.sabdroidex.data.sickbeard.Season; public class SeasonEpisodeAdapater extends BaseAdapter { private LayoutInflater inflater; private Season season; public enum COLOR { DOWNLOADED (Color.rgb(100, 200, 100)), //GREEN SNATCHED (Color.rgb(225, 150, 225)), //PINK SKIPPED (Color.rgb(75, 75, 250)), //BLUE WANTED (Color.rgb(250, 50, 50)), //RED LOW_QUALITY (Color.rgb(225, 225, 50)), //YELLOW UNAIRED (Color.rgb(75, 75, 75)); //BLACKISH private int color; private COLOR(int color) { this.color = color; } public int getColor() { return color; } } public SeasonEpisodeAdapater(Context context, Season season) { this.inflater = LayoutInflater.from(context); this.season = season; } @Override public View getView(int position, View convertView, ViewGroup parent) { EpisodeItem episodeItem; if (convertView == null) { convertView = inflater.inflate(R.layout.list_item_episode, null); episodeItem = new EpisodeItem(); episodeItem.episode = (TextView) convertView.findViewById(R.id.episode); episodeItem.name = (TextView) convertView.findViewById(R.id.episode_name); episodeItem.airdate = (TextView) convertView.findViewById(R.id.episode_airdate); episodeItem.quality = (TextView) convertView.findViewById(R.id.episode_quality); episodeItem.status = (TextView) convertView.findViewById(R.id.episode_status); } else { episodeItem = (EpisodeItem) convertView.getTag(); } Episode episode = (Episode) getItem(position); episodeItem.episode.setText(episode.getEpisode().toString()); episodeItem.name.setText(episode.getName()); episodeItem.airdate.setText(episode.getAirDate()); episodeItem.quality.setText(episode.getQuality()); episodeItem.status.setText(episode.getStatus()); for (COLOR color : COLOR.values()) { if (episode.getStatus().toLowerCase().equals(color.name().toLowerCase().replace('_', ' '))) { episodeItem.status.setTextColor(color.getColor()); } } convertView.setTag(episodeItem); return convertView; } @Override public int getCount() { if (season == null) { return 0; } return season.getEpisodes().size(); } @Override public Object getItem(int position) { return season.getEpisodes().get(position); } @Override public long getItemId(int position) { return position; } public void setSeason(Season season) { this.season = season; } class EpisodeItem { TextView episode; TextView name; TextView airdate; TextView quality; TextView status; } }