From ac7e902dca62fe00f442094a751048a802d13f90 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 16 九月 2025 09:15:28 +0800
Subject: [PATCH] 2025年09月16日09:15:27
---
app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java | 92 +++++++++++++++++++++++++++++++++++----------
1 files changed, 71 insertions(+), 21 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java
index de8d5f7..7ca2b67 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java
@@ -1,17 +1,24 @@
package com.hdl.photovoltaic.ui.adapter;
import android.content.Context;
+import android.graphics.drawable.Drawable;
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.appcompat.content.res.AppCompatResources;
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> {
@@ -19,38 +26,55 @@
private List<MessageBean> mList;
private final Context mContext;
- private MessageAdapter.OnclickListener noOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
+ private OnClickListener mOnclickListener;//鐐瑰嚮浜嗙殑鐩戝惉鍣�
- public MessageAdapter(List<MessageBean> list, Context context) {
-
- this.mList = list;
+ public MessageAdapter(Context context) {
this.mContext = context;
}
@NonNull
@Override
- public MessageAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-
- View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_message, parent, false);
- return new MessageAdapter.MyViewHolder(view);
+ public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.item_message, parent, false);
+ return new MyViewHolder(view);
}
@Override
- public void onBindViewHolder(@NonNull MessageAdapter.MyViewHolder holder, int position) {
+ public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
MessageBean messageBean = this.mList.get(position);
- holder.item_content_tv.setText(messageBean.getContent());
- holder.item_home_name_tv.setText(messageBean.getHomeName());
- holder.item_time_tv.setText(messageBean.getTime());
- holder.item_estate_tv.setText(messageBean.getGrade());
+ String strName = getDeviceTypeStr(messageBean.getDeviceType()) + "(" + messageBean.getHomeName()+"_"+messageBean.getDeviceDesc() + ")";
+ holder.item_content_tv.setText(messageBean.getTitle());
+ 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.device_satte_ffb300);
+ if (messageBean.getType().equals(MessageAlarmStateType.fault)) {
+ type = mContext.getString(R.string.my_power_station_malfunction);
+ 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.device_satte_ffb300);
+ } else if (messageBean.getType().equals(MessageAlarmStateType.event)) {
+ 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.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) {
}
}
});
@@ -59,16 +83,23 @@
@Override
public int getItemCount() {
- return this.mList == null ? 0 : this.mList.size();
+ return mList == null ? 0 : mList.size();
}
- 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;
}
/**
@@ -91,8 +122,27 @@
}
}
- 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 "";
+ }
+ }
+
}
--
Gitblit v1.8.0