From 3ccff7173fb73322f7785d8eaedc90a1b5d8765d Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 10 十二月 2024 22:44:03 +0800
Subject: [PATCH] 2024年12月10日22:43:59

---
 app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java |   78 ++++++++++++++++++++++++++++++++-------
 1 files changed, 64 insertions(+), 14 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 6ce4bb5..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,16 +1,22 @@
 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;
@@ -20,11 +26,9 @@
 
     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;
     }
 
@@ -38,19 +42,39 @@
     @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());
-        holder.item_time_tv.setText(messageBean.getCreateTime() + "");
-        holder.item_estate_tv.setText(messageBean.getStatus() + "");
+        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) {
                 }
             }
         });
@@ -63,12 +87,19 @@
     }
 
 
-    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