/* * Copyright © 2016 - 2018 by GitHub.com/JasonQS * anti-recall.qsboy.com * All Rights Reserved */ package com.qsboy.antirecall.ui.adapter; import android.content.Context; import android.util.Log; import com.chad.library.adapter.base.BaseItemDraggableAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.qsboy.antirecall.R; import com.qsboy.antirecall.db.Messages; import com.qsboy.antirecall.ui.activity.App; import com.qsboy.antirecall.utils.ImageHelper; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Locale; import static java.util.Calendar.DAY_OF_YEAR; public class MultiMessagesAdapter extends BaseItemDraggableAdapter<Messages, BaseViewHolder> { private String TAG = "MultiMessagesAdapter"; private Context context; private int theme; private int day; private Calendar calendar = Calendar.getInstance(); private SimpleDateFormat sdfSec = new SimpleDateFormat("HH:mm:ss", Locale.getDefault()); private SimpleDateFormat sdfDate = new SimpleDateFormat("MM - dd", Locale.getDefault()); private OnDateChangeListener onDateChangeListener; public MultiMessagesAdapter(List<Messages> data, Context context, int theme) { super(R.layout.item_message, data); this.context = context; this.theme = theme; } @Override protected void convert(BaseViewHolder helper, Messages item) { Log.v(TAG, "convert: " + item.getText() + " id: " + item.getId()); helper.setText(R.id.cell_name, item.getSubName()); helper.setText(R.id.cell_time, sdfSec.format(item.getTime())); formatTime(item.getTime()); // TODO: image之后改成可以左右滑动的 if (item.getImages() != null && item.getImages().length() != 0) { helper.setImageBitmap(R.id.cell_message_image, ImageHelper.getBitmap(item.getImage())); helper.setText(R.id.cell_message_text, ""); } else { helper.setImageBitmap(R.id.cell_message_image, null); helper.setText(R.id.cell_message_text, item.getText()); } switch (theme) { case App.THEME_BLUE: helper.setBackgroundColor(R.id.cell_name, context.getResources().getColor(R.color.bgNameBlue)); helper.setBackgroundColor(R.id.item_message, context.getResources().getColor(R.color.bgContentBlue)); break; case App.THEME_RED: helper.setBackgroundColor(R.id.cell_name, context.getResources().getColor(R.color.bgNameRed)); helper.setBackgroundColor(R.id.item_message, context.getResources().getColor(R.color.bgContentRed)); break; case App.THEME_GREEN: helper.setBackgroundColor(R.id.cell_name, context.getResources().getColor(R.color.bgNameGreen)); helper.setBackgroundColor(R.id.item_message, context.getResources().getColor(R.color.bgContentGreen)); break; } } public void setOnDateChangeListener(OnDateChangeListener onDateChangeListener) { this.onDateChangeListener = onDateChangeListener; } private void formatTime(long time) { Date date = new Date(time); calendar.setTime(date); if (day != (day = calendar.get(DAY_OF_YEAR))) onDateChangeListener.onDateChange(time); } interface OnDateChangeListener { void onDateChange(long date); } }