package com.V4Creations.vtulife.controller.adapters; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.V4Creations.vtulife.R; import com.V4Creations.vtulife.model.ResultItem; public class ResultAdapter extends SupportArrayAdapter<ResultItem> { public ResultAdapter(Context context) { super(context); } @Override public int getItemViewType(int position) { return getItem(position).getType(); } @Override public int getViewTypeCount() { return ResultItem.TYPE_MAX_COUNT; } @Override public View getView(int position, View convertView, ViewGroup parent) { switch (getItemViewType(position)) { case ResultItem.TYPE_STUDENT_DETAILS: convertView = getStudentDetails(convertView, position); break; case ResultItem.TYPE_RESULT: convertView = getResult(convertView, position); break; case ResultItem.TYPE_SEMESTER: convertView = getSemester(convertView, position); break; case ResultItem.TYPE_SUBJECT_RESULT: convertView = getSubjectResult(convertView, position); break; case ResultItem.TYPE_SUBJECT_REVAL_RESULT: convertView = getSubjectRevalResult(convertView, position); break; case ResultItem.TYPE_RESULT_SINGLE: convertView = getSingleResult(convertView, position); break; } return convertView; } private View getSingleResult(View convertView, int position) { ViewHolder viewHolder; if (convertView == null) { convertView = getLayoutInflater().inflate( R.layout.result_single_list_item, null); viewHolder = new ViewHolder(); viewHolder.resultSingleTextView = (TextView) convertView .findViewById(R.id.resultSingleTextView); convertView.setTag(viewHolder); } else viewHolder = (ViewHolder) convertView.getTag(); ResultItem resultItem = getItem(position); int color = getColor(R.color.pass_color); int bgColor = R.color.bg_result_pass; if (resultItem.getResult().equals(resultItem.getFailString())) { color = getColor(R.color.fail_color); bgColor = R.color.bg_result_fail; } viewHolder.resultSingleTextView.setTextColor(color); viewHolder.resultSingleTextView.setText(resultItem.getResult()); convertView.setBackgroundResource(bgColor); return convertView; } private View getSubjectRevalResult(View convertView, int position) { ViewHolder viewHolder; if (convertView == null) { convertView = getLayoutInflater().inflate( R.layout.subject_reval_result_list_item, null); viewHolder = new ViewHolder(); viewHolder.subjectNameRevalTextView = (TextView) convertView .findViewById(R.id.subjectRevalTextView); viewHolder.previousExternalRevalTextView = (TextView) convertView .findViewById(R.id.previousExternalTextView); viewHolder.finalExternalRevalTextView = (TextView) convertView .findViewById(R.id.finalExternalTextView); viewHolder.internalRevalTextView = (TextView) convertView .findViewById(R.id.internalRevalTextView); viewHolder.subjectTotalRevalTextView = (TextView) convertView .findViewById(R.id.subjectTotalRevalTextView); viewHolder.subjectResultRevalTextView = (TextView) convertView .findViewById(R.id.subjectResultRevalTextView); convertView.setTag(viewHolder); } else viewHolder = (ViewHolder) convertView.getTag(); ResultItem resultItem = getItem(position); int color = getColor(R.color.pass_color); if (!resultItem.getSubjectResult().equals("P")) color = getColor(R.color.fail_color); viewHolder.subjectResultRevalTextView.setTextColor(color); viewHolder.subjectTotalRevalTextView.setTextColor(color); viewHolder.subjectNameRevalTextView .setText(resultItem.getSubjectName()); viewHolder.previousExternalRevalTextView.setText(resultItem .getExternal()); viewHolder.finalExternalRevalTextView .setText(resultItem.getFinalMark()); viewHolder.internalRevalTextView.setText(resultItem.getInternal()); viewHolder.subjectTotalRevalTextView.setText(resultItem .getSubjectTotal()); viewHolder.subjectResultRevalTextView.setText(resultItem .getSubjectResult()); int bgColor = R.color.odd_color; if (position % 2 == 0) bgColor = R.color.even_color; convertView.setBackgroundResource(bgColor); return convertView; } private View getSubjectResult(View convertView, int position) { ViewHolder viewHolder; if (convertView == null) { convertView = getLayoutInflater().inflate( R.layout.subject_result_list_item, null); viewHolder = new ViewHolder(); viewHolder.subjectNameTextView = (TextView) convertView .findViewById(R.id.subjectTextView); viewHolder.externalTextView = (TextView) convertView .findViewById(R.id.externalTextView); viewHolder.internalTextView = (TextView) convertView .findViewById(R.id.internalTextView); viewHolder.subjectTotalTextView = (TextView) convertView .findViewById(R.id.subjectTotalTextView); viewHolder.subjectResultTextView = (TextView) convertView .findViewById(R.id.subjectResultTextView); convertView.setTag(viewHolder); } else viewHolder = (ViewHolder) convertView.getTag(); ResultItem resultItem = getItem(position); int color = getColor(R.color.pass_color); if (!resultItem.getSubjectResult().equals("P")) color = getColor(R.color.fail_color); viewHolder.subjectResultTextView.setTextColor(color); viewHolder.subjectTotalTextView.setTextColor(color); viewHolder.subjectNameTextView.setText(resultItem.getSubjectName()); viewHolder.externalTextView.setText(resultItem.getExternal()); viewHolder.internalTextView.setText(resultItem.getInternal()); viewHolder.subjectTotalTextView.setText(resultItem.getSubjectTotal()); viewHolder.subjectResultTextView.setText(resultItem.getSubjectResult()); int bgColor = R.color.odd_color; if (position % 2 == 0) bgColor = R.color.even_color; convertView.setBackgroundResource(bgColor); return convertView; } private View getSemester(View convertView, int position) { ViewHolder viewHolder; if (convertView == null) { convertView = getLayoutInflater().inflate( R.layout.semester_list_item, null); viewHolder = new ViewHolder(); viewHolder.semesterTextView = (TextView) convertView .findViewById(R.id.semesterNumber); convertView.setTag(viewHolder); } else viewHolder = (ViewHolder) convertView.getTag(); viewHolder.semesterTextView.setText(getItem(position).getSemester()); return convertView; } private View getResult(View convertView, int position) { ViewHolder viewHolder; if (convertView == null) { convertView = getLayoutInflater().inflate( R.layout.result_list_item, null); viewHolder = new ViewHolder(); viewHolder.resultTextView = (TextView) convertView .findViewById(R.id.resultTextView); viewHolder.percentageTextView = (TextView) convertView .findViewById(R.id.percentageTextView); viewHolder.totalTextView = (TextView) convertView .findViewById(R.id.totalTextView); convertView.setTag(viewHolder); } else viewHolder = (ViewHolder) convertView.getTag(); ResultItem resultItem = getItem(position); int color = getColor(R.color.pass_color); int bgColor = R.color.bg_result_pass; if (resultItem.getResult().equals(resultItem.getFailString())) { color = getColor(R.color.fail_color); bgColor = R.color.bg_result_fail; } viewHolder.resultTextView.setTextColor(color); viewHolder.percentageTextView.setTextColor(color); viewHolder.totalTextView.setTextColor(color); viewHolder.resultTextView.setText(resultItem.getResult()); viewHolder.percentageTextView.setText(resultItem.getPercentage()); viewHolder.totalTextView.setText(resultItem.getTotal()); convertView.setBackgroundResource(bgColor); return convertView; } private int getColor(int resColor) { return getContext().getResources().getColor(resColor); } private View getStudentDetails(View convertView, int position) { ViewHolder viewHolder; if (convertView == null) { convertView = getLayoutInflater().inflate( R.layout.student_details_list_item, null); viewHolder = new ViewHolder(); viewHolder.nameTextView = (TextView) convertView .findViewById(R.id.nameTextView); viewHolder.usnTextView = (TextView) convertView .findViewById(R.id.usnTextView); convertView.setTag(viewHolder); } else viewHolder = (ViewHolder) convertView.getTag(); ResultItem resultItem = getItem(position); viewHolder.nameTextView.setText(resultItem.getName()); viewHolder.usnTextView.setText(resultItem.getUsn()); return convertView; } private static class ViewHolder { TextView nameTextView; TextView usnTextView; TextView resultTextView; TextView percentageTextView; TextView totalTextView; TextView semesterTextView; TextView subjectNameTextView; TextView externalTextView; TextView internalTextView; TextView subjectTotalTextView; TextView subjectResultTextView; TextView subjectNameRevalTextView; TextView previousExternalRevalTextView; TextView finalExternalRevalTextView; TextView internalRevalTextView; TextView subjectTotalRevalTextView; TextView subjectResultRevalTextView; TextView resultSingleTextView; } }