package cn.flightfeather.thirdappmodule.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Objects; import cn.flightfeather.thirdappmodule.R; import cn.flightfeather.thirdappmodule.bean.entity.Subtask; import cn.flightfeather.thirdappmodule.util.Constant; import cn.flightfeather.thirdappmodule.util.DialogUtil2; import cn.flightfeather.thirdappmodule.util.Domain; import cn.flightfeather.thirdappmodule.util.slideswaphelper.OnDeleteListener; import cn.flightfeather.thirdappmodule.util.slideswaphelper.OnSwipeItemClickListener; import kotlin.Unit; /** * Created by note_ff_1602 on 2017/9/14. * dayWeekMonthTaskActivity&TasKList1Fragment用于显示任务列表的adapter */ public class TaskListAdapter extends RecyclerView.Adapter { public final static int ITEM_VIEW_TYPE_HEAD = 0; public final static int ITEM_VIEW_TYPE_CONTENT = 1; private Context context; private List subTaskList; private LayoutInflater layoutInflater; private boolean isShowDate = true; private boolean deleteable = false; private OnDeleteListener onDeleteListener; private OnSwipeItemClickListener onSwipeItemClickListener; public TaskListAdapter(Context context, List subTaskList){ layoutInflater = LayoutInflater.from(context); this.context = context; this.subTaskList = subTaskList; } @Override public int getItemViewType(int position) { if (position == 0) { return ITEM_VIEW_TYPE_HEAD; } else { return ITEM_VIEW_TYPE_CONTENT; } } @Override public TaskListHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view; if (viewType == ITEM_VIEW_TYPE_HEAD) { view = layoutInflater.inflate(R.layout.item_task_list_head, parent, false); } else { view = layoutInflater.inflate(R.layout.item_task_list_2, parent, false); } return new TaskListHolder(view, context, viewType); } @Override public void onBindViewHolder(TaskListHolder holder, final int position) { int pos = holder.getAdapterPosition(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm", Locale.getDefault()); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("MM月dd日", Locale.getDefault()); Subtask subTask = subTaskList.get(pos); switch (holder.getItemViewType()) { case ITEM_VIEW_TYPE_HEAD: Date date1 = subTask.getPlanstarttime(); String day = simpleDateFormat1.format(date1); holder.txt_date.setText(day); holder.txt_total_task_count.setText(subTask.getExtension1()); holder.txt_complete_task_count.setText(subTask.getExtension2()); holder.txt_changed_task_count.setText(subTask.getExtension3()); break; case ITEM_VIEW_TYPE_CONTENT: Date date = subTask.getPlanstarttime(); if (date!=null){ String planStartTime = simpleDateFormat.format(date); if (planStartTime.equals("00:00")){ planStartTime = "全天"; } holder.mtv_time.setText(planStartTime); //对是否显示日期的判断 if (pos>0){ Subtask subTaskBefore = subTaskList.get(pos-1); Calendar calendarBefore = Calendar.getInstance(); calendarBefore.setTime(subTaskBefore.getPlanstarttime()); calendarBefore.set(Calendar.HOUR_OF_DAY,0); calendarBefore.set(Calendar.MINUTE,0); calendarBefore.set(Calendar.SECOND,0); Calendar calendarNow = Calendar.getInstance(); calendarNow.setTime(date); calendarNow.set(Calendar.HOUR_OF_DAY,0); calendarNow.set(Calendar.MINUTE,0); calendarNow.set(Calendar.SECOND,0); } } holder.mtv_name.setText(subTask.getName()); String names = subTask.getExecutorrealtimes(); names = names.replaceAll(Constant.CONNECTOR, Constant.CONNECTOR_FOR_VIEW); holder.mtv_address.setText(subTask.getScenseaddress()); holder.mtv_staff.setText(names); switch (subTask.getStatus()) { case Domain.TASK_STATUS_RUNNING: holder.img_status.setImageResource(R.mipmap.ic_task_executing); break; case Domain.TASK_STATUS_FINISHED: holder.img_status.setImageResource(R.mipmap.ic_task_complete); break; default: holder.img_status.setImageResource(R.mipmap.ic_task_ready_to_start); break; } //审核状态 if (Objects.equals(subTask.getRemark(), Domain.PROBLEM_UNCHECKED)) { holder.mtv_check_status.setText("未审核"); holder.mtv_check_status.setVisibility(View.VISIBLE); } else { holder.mtv_check_status.setVisibility(View.GONE); } holder.slideLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (onSwipeItemClickListener != null) { onSwipeItemClickListener.click(pos); } } }); if (deleteable) { holder.slideLayout.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { DialogUtil2.INSTANCE.showAlertDialog(context, "确认是否删除任务?", dialog -> { onDeleteListener.delete(pos); dialog.dismiss(); return Unit.INSTANCE; }, dialog -> { dialog.dismiss(); return Unit.INSTANCE; }); return true; } }); } else { holder.slideLayout.setOnLongClickListener(null); } // 风险提示、巡查要点、应急巡查的提示图标 holder.group_risk_warn.setVisibility(View.GONE); holder.group_inspection_key_point.setVisibility(View.GONE); holder.group_emergency_inspection.setVisibility(View.GONE); break; } } @Override public int getItemCount() { return subTaskList.size(); } public void setShowDate(boolean showDate) { this.isShowDate = showDate; } public TaskListAdapter setDeleteable(boolean deleteable) { this.deleteable = deleteable; return this; } public void setOnDeleteListener(OnDeleteListener onDeleteListener) { this.onDeleteListener = onDeleteListener; } public void setOnItemClickListener(OnSwipeItemClickListener onSwipeItemClickListener) { this.onSwipeItemClickListener = onSwipeItemClickListener; } }