package ca.etsmtl.applets.etsmobile.ui.adapter; import android.annotation.SuppressLint; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import com.octo.android.robospice.request.listener.RequestListener; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import ca.etsmtl.applets.etsmobile.model.Moodle.MoodleCourse; import ca.etsmtl.applets.etsmobile2.R; /** * Adapter listing all Moodle courses * * @author Thibaut */ public class MoodleCoursesAdapter extends ArrayAdapter<MoodleCourse> { private LayoutInflater inflater; private RequestListener<Object> listener; public MoodleCoursesAdapter(Context context, int rowLayoutResourceId, List<MoodleCourse> listMoodleCourse, RequestListener<Object> listener) { super(context, rowLayoutResourceId, listMoodleCourse); this.inflater = LayoutInflater.from(context); this.listener = listener; } @SuppressLint("DefaultLocale") @Override public View getView(final int position, View view, ViewGroup parent) { ViewHolder holder; if (view != null) { holder = (ViewHolder) view.getTag(); } else { view = inflater.inflate(R.layout.row_moodle_course, parent, false); holder = new ViewHolder(); holder.tvCourseName = (TextView) view.findViewById(R.id.tv_moodle_course_name); holder.tvCourseSigle = (TextView) view.findViewById(R.id.tv_moodle_course_sigle); view.setTag(holder); } final MoodleCourse item = getItem(position); // Extracts course and group Pattern pattern = Pattern.compile("([A-Z]{3,3}\\d{3,3}(-.[^ ]*)?)"); Matcher matcher = pattern.matcher(item.getFullname()); if(matcher.find()) holder.tvCourseSigle.setText(matcher.group(1)); //Extracts course's full name and session pattern = Pattern.compile("(?:[^ ]* )(.*)"); matcher = pattern.matcher(item.getFullname()); if(matcher.find()) holder.tvCourseName.setText(matcher.group(1)); return view; } static class ViewHolder { TextView tvCourseSigle; TextView tvCourseName; } }