From 87cd5df70918e6ba1af849c5f026d3719bfdb1ac Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 09 四月 2025 09:06:29 +0800
Subject: [PATCH] Merge branch '1.5.2' into dev

---
 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