package org.lntu.online.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 org.lntu.online.R; import org.lntu.online.model.entity.ExamPlan; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; public class ExamPlanAdapter extends BaseAdapter { private LayoutInflater inflater; private List<ExamPlan> planList; private DateTime nowDate; public ExamPlanAdapter(Context context, List<ExamPlan> planList) { inflater = LayoutInflater.from(context); this.planList = planList; nowDate = new DateTime(); } @Override public int getCount() { return planList == null ? 0 : planList.size(); } @Override public Object getItem(int position) { return planList.get(position); } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = inflater.inflate(R.layout.activity_exam_plan_item, parent, false); holder = new ViewHolder(convertView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } ExamPlan plan = planList.get(position); holder.tvCourse.setText(plan.getCourse()); holder.tvTime.setText(plan.getShowTime()); holder.tvLocation.setText(plan.getLocation()); if (plan.getEndTime().isBefore(nowDate)) { holder.iconFinish.setVisibility(View.VISIBLE); holder.iconCountdown.setVisibility(View.INVISIBLE); } else { holder.iconFinish.setVisibility(View.INVISIBLE); holder.iconCountdown.setVisibility(View.VISIBLE); long diff = plan.getStartTime().getMillis() - nowDate.getMillis(); long days = diff / (1000 * 60 * 60 * 24); if (days == 0) { holder.tvDayLeft.setText("< 1"); } else { holder.tvDayLeft.setText(days + ""); } if (days <= 7) { holder.tvDayLeft.setTextColor(0xFFF44336); } else { holder.tvDayLeft.setTextColor(0xFF4CAF50); } } return convertView; } protected class ViewHolder { @BindView(R.id.tv_course) protected TextView tvCourse; @BindView(R.id.tv_time) protected TextView tvTime; @BindView(R.id.tv_location) protected TextView tvLocation; @BindView(R.id.icon_finish) protected View iconFinish; @BindView(R.id.icon_countdown) protected View iconCountdown; @BindView(R.id.tv_day_left) protected TextView tvDayLeft; public ViewHolder(View convertView) { ButterKnife.bind(this, convertView); } } }