| | |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | import android.view.ViewGroup; |
| | | import android.widget.ImageView; |
| | | import android.widget.TextView; |
| | | |
| | | import androidx.annotation.NonNull; |
| | |
| | | import androidx.recyclerview.widget.RecyclerView; |
| | | |
| | | import com.hdl.photovoltaic.R; |
| | | import com.hdl.photovoltaic.enums.DeviceType; |
| | | import com.hdl.photovoltaic.enums.MessageAlarmStateType; |
| | | import com.hdl.photovoltaic.ui.bean.MessageBean; |
| | | import com.hdl.photovoltaic.utils.TimeUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MyViewHolder> { |
| | |
| | | |
| | | private List<MessageBean> mList; |
| | | private final Context mContext; |
| | | private MessageAdapter.OnclickListener noOnclickListener;//点击了的监听器 |
| | | private OnClickListener mOnclickListener;//点击了的监听器 |
| | | |
| | | public MessageAdapter(List<MessageBean> list, Context context) { |
| | | |
| | | mList = list; |
| | | public MessageAdapter(Context context) { |
| | | this.mContext = context; |
| | | } |
| | | |
| | |
| | | @Override |
| | | public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { |
| | | MessageBean messageBean = this.mList.get(position); |
| | | String strName = getDeviceTypeStr(messageBean.getDeviceType()) + "(" + messageBean.getHomeName()+"_"+messageBean.getDeviceDesc() + ")"; |
| | | holder.item_content_tv.setText(messageBean.getTitle()); |
| | | holder.item_home_name_tv.setText(messageBean.getHomeName()); |
| | | String date = TimeUtils.getDateTimestamp(messageBean.getCreateTime()); |
| | | holder.item_home_name_tv.setText(strName); |
| | | String date = TimeUtils.getTimeFromTimestamp(messageBean.getCreateTime()); |
| | | holder.item_time_tv.setText(date); |
| | | String type = "";//FAULT:故障,WARN:告警,EVENT:事件 |
| | | Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300); |
| | | String type = "";//FAULT:故障,WARN:告警,EVENT:提示 |
| | | Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300); |
| | | if (messageBean.getType().equals(MessageAlarmStateType.fault)) { |
| | | type = mContext.getString(R.string.my_power_station_malfunction); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_e34343); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_fff55252); |
| | | } else if (messageBean.getType().equals(MessageAlarmStateType.warn)) { |
| | | type = mContext.getString(R.string.message_alarm); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_satte_ffb300); |
| | | } else if (messageBean.getType().equals(MessageAlarmStateType.event)) { |
| | | type = "事件"; |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300); |
| | | type = mContext.getString(R.string.loading_title_tip); |
| | | drawable = AppCompatResources.getDrawable(mContext, R.drawable.device_state_ffb9b9b9); |
| | | } |
| | | holder.item_estate_tv.setText(type); |
| | | // holder.item_estate_tv.setText(type); |
| | | holder.item_estate_tv.setBackground(drawable); |
| | | holder.item_unread_message_tv.setVisibility(View.VISIBLE); |
| | | if (messageBean.isRead()) { |
| | | holder.item_unread_message_tv.setVisibility(View.GONE); |
| | | } |
| | | //标记索引 |
| | | holder.itemView.setTag(position); |
| | | holder.itemView.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | if (noOnclickListener != null) { |
| | | noOnclickListener.onClick(holder.getAdapterPosition(), messageBean); |
| | | try { |
| | | if (mOnclickListener != null) { |
| | | mOnclickListener.onClick((int) holder.itemView.getTag(), messageBean); |
| | | } |
| | | } catch (Exception ignored) { |
| | | } |
| | | } |
| | | }); |
| | |
| | | } |
| | | |
| | | |
| | | public void setList(List<MessageBean> list) { |
| | | this.mList = list; |
| | | public void setList(List<MessageBean> newData) { |
| | | if (this.mList == null) { |
| | | this.mList = new ArrayList<>(); |
| | | } else { |
| | | this.mList.clear(); |
| | | } |
| | | |
| | | this.mList.addAll(newData); |
| | | notifyDataSetChanged(); |
| | | } |
| | | |
| | | public void setNoOnclickListener(MessageAdapter.OnclickListener onclickListener) { |
| | | this.noOnclickListener = onclickListener; |
| | | public void setOnclickListener(OnClickListener onClickListener) { |
| | | this.mOnclickListener = onClickListener; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | } |
| | | |
| | | public interface OnclickListener { |
| | | public interface OnClickListener { |
| | | void onClick(int position, MessageBean messageBean); |
| | | } |
| | | |
| | | /** |
| | | * 通过枚举转换设备类型的字符 |
| | | * |
| | | * @param deviceType //设备类型(INV : 逆变器, BMS : BMS控制盒, BATTERY : 电池单元) |
| | | * @return 设备类型 |
| | | */ |
| | | private String getDeviceTypeStr(String deviceType) { |
| | | switch (deviceType) { |
| | | case DeviceType.inv: |
| | | return mContext.getString(R.string.alarm_all_device_inverter); |
| | | case DeviceType.bms: |
| | | return mContext.getString(R.string.alarm_all_device_bms); |
| | | case DeviceType.battery: |
| | | return mContext.getString(R.string.alarm_all_device_battery_cell); |
| | | default: |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | } |