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);
}
}
}