package ca.etsmtl.applets.etsmobile.ui.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import org.joda.time.DateTime; import java.util.ArrayList; import ca.etsmtl.applets.etsmobile.model.Event; import ca.etsmtl.applets.etsmobile.model.Seances; import ca.etsmtl.applets.etsmobile2.R; /** * Created by laurencedevillers on 14-10-22. */ public class TodayAdapter extends BaseAdapter { private Context context; private ArrayList<TodayDataRowItem> arrayDataRowItem; public TodayAdapter(Context context, ArrayList<TodayDataRowItem> arrayAdapter) { this.context = context; this.arrayDataRowItem = arrayAdapter; } @Override public int getCount() { return arrayDataRowItem.size(); } @Override public Object getItem(int position) { return arrayDataRowItem.get(position).data; } @Override public long getItemId(int position) { return 0; } @Override public int getItemViewType(int position) { return arrayDataRowItem.get(position).type; } @Override public int getViewTypeCount() { return TodayDataRowItem.viewType.values().length; } @Override public View getView(int position, View convertView, ViewGroup parent) { int viewType = getItemViewType(position); Object data = getItem(position); if (convertView == null) { if (viewType == TodayDataRowItem.viewType.VIEW_TYPE_TITLE_EVENT.getValue()) { convertView = LayoutInflater.from(context).inflate(R.layout.row_today_title, parent, false); TextView textView = (TextView) convertView.findViewById(R.id.todays_title); textView.setText(context.getText(R.string.today_event)); } else if (viewType == TodayDataRowItem.viewType.VIEW_TYPE_EVENT.getValue()) { convertView = LayoutInflater.from(context).inflate(R.layout.row_event, parent, false); ViewEventHolder eventHolder = new ViewEventHolder(); eventHolder.tvEvent = (TextView) convertView.findViewById(R.id.event_text); convertView.setTag(eventHolder); } else if (viewType == TodayDataRowItem.viewType.VIEW_TYPE_TITLE_SEANCE.getValue()) { convertView = LayoutInflater.from(context).inflate(R.layout.row_today_title, parent, false); TextView textView = (TextView) convertView.findViewById(R.id.todays_title); textView.setText(context.getText(R.string.today_course)); } else if (viewType == TodayDataRowItem.viewType.VIEW_TYPE_SEANCE.getValue()) { convertView = LayoutInflater.from(context).inflate(R.layout.row_today_courses, parent, false); ViewSeancesHolder seancesHolder = new ViewSeancesHolder(); seancesHolder.tvHeureDebut = (TextView) convertView.findViewById(R.id.tv_today_heure_debut); seancesHolder.tvHeureFin = (TextView) convertView.findViewById(R.id.tv_today_heure_fin); seancesHolder.tvCoursGroupe = (TextView) convertView.findViewById(R.id.tv_today_cours_groupe); seancesHolder.tvNomActivite = (TextView) convertView.findViewById(R.id.tv_today_nom_activite); seancesHolder.tvLibelleCours = (TextView) convertView.findViewById(R.id.tv_today_libelle_cours); seancesHolder.tvLocal = (TextView) convertView.findViewById(R.id.tv_today_local); convertView.setTag(seancesHolder); } } if (viewType == TodayDataRowItem.viewType.VIEW_TYPE_EVENT.getValue()) { Event event = (Event) data; ViewEventHolder viewEventHolder = (ViewEventHolder) convertView.getTag(); viewEventHolder.tvEvent.setText(event.getTitle()); } else if (viewType == TodayDataRowItem.viewType.VIEW_TYPE_SEANCE.getValue()) { Seances seance = (Seances) data; ViewSeancesHolder viewSeancesHolder = (ViewSeancesHolder) convertView.getTag(); viewSeancesHolder.tvNomActivite.setText(seance.nomActivite); viewSeancesHolder.tvCoursGroupe.setText(seance.coursGroupe); viewSeancesHolder.tvLibelleCours.setText(seance.libelleCours); viewSeancesHolder.tvLocal.setText(seance.local); DateTime mDateDebut = DateTime.parse(seance.dateDebut); DateTime mDateFin = DateTime.parse(seance.dateFin); String dateDebut = String.format("%dh%02d", mDateDebut.getHourOfDay(), mDateDebut.getMinuteOfHour()); String dateFin = String.format("%dh%02d", mDateFin.getHourOfDay(), mDateFin.getMinuteOfHour()); viewSeancesHolder.tvHeureDebut.setText(dateDebut); viewSeancesHolder.tvHeureFin.setText(dateFin); } return convertView; } class ViewEventHolder { TextView tvEvent; } class ViewSeancesHolder { TextView tvHeureDebut; TextView tvHeureFin; TextView tvNomActivite; TextView tvCoursGroupe; TextView tvLibelleCours; TextView tvLocal; } }