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<TaskListHolder> {
|
|
public final static int ITEM_VIEW_TYPE_HEAD = 0;
|
public final static int ITEM_VIEW_TYPE_CONTENT = 1;
|
|
private Context context;
|
private List<Subtask> subTaskList;
|
private LayoutInflater layoutInflater;
|
private boolean isShowDate = true;
|
private boolean deleteable = false;
|
private OnDeleteListener onDeleteListener;
|
private OnSwipeItemClickListener onSwipeItemClickListener;
|
|
public TaskListAdapter(Context context, List<Subtask> 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;
|
}
|
}
|