From 43c0a28db7e43959561036dbde0eb5cb37a7e324 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 10 五月 2024 18:25:40 +0800
Subject: [PATCH] 2024年05月10日18:25:29

---
 app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java |  480 +++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 347 insertions(+), 133 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
index a6e41e7..d04d85f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
@@ -1,31 +1,45 @@
 package com.hdl.photovoltaic.ui.newC;
 
 
-import android.annotation.SuppressLint;
+import android.content.Intent;
 import android.os.Bundle;
-import android.text.TextUtils;
 import android.view.View;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
+import com.google.gson.JsonObject;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseActivity;
+import com.hdl.photovoltaic.config.ConstantManage;
+import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.ActivityMessageCenterListBinding;
+import com.hdl.photovoltaic.enums.FilterType;
 import com.hdl.photovoltaic.enums.MessageStateType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlCommonLogic;
+import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlMessageLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.other.HdlUniLogic;
 import com.hdl.photovoltaic.ui.bean.MessageBean;
+import com.hdl.photovoltaic.ui.message.MessageInfoActivity;
 import com.hdl.photovoltaic.ui.newC.adapter.MessageCenterListAdapter;
+import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.widget.TypeTitleListDialog;
+import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * C绔秷鎭腑蹇冨垪琛�
@@ -39,13 +53,27 @@
     private boolean isAlarmDeviceClick = true;//true琛ㄧず鍛婅璁惧琚�変腑,鍒檉alse琛ㄧず鎶ヨ璁板綍琚�変腑
 
     private final List<MessageBean> mList = new ArrayList<>();
-    private int currentPage = 0; // 褰撳墠椤电爜
-    private int currentTotal = 0; // 鎬婚〉鐮�
+    private int mCurrentPage = 0; // 褰撳墠椤电爜
+    private int mCurrentTotal = 0; // 鎬婚〉鐮�
+
+    private int mTotalCount1 = 0;//娑堟伅鏁伴噺鎬绘暟
+
+    private int mTotalCount2 = 0;//娑堟伅鏁伴噺鎬绘暟
+    private String mDeviceTypeFilterKye = FilterType.deviceType;//杩囨护绫诲瀷 deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級
+    private String mDeviceTypeFilterValue = FilterType.all;//杩囨护绫诲瀷鍊� deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級
+
+    private String mTypeFilterKye = FilterType.all;//杩囨护绫诲瀷 type锛團AULT 锛氭晠闅滐紱 WARN 锛氬憡璀︼紱 EVENT 锛氫簨浠�(鎻愮ず)锛夛紱
+    private String mTypeFilterValue = FilterType.all;//杩囨护绫诲瀷鍊� type锛團AULT 锛氭晠闅滐紱 WARN 锛氬憡璀︼紱 EVENT 锛氫簨浠�(鎻愮ず)锛夛紱
+
+    private String mTimeTypeFilterKye = FilterType.all;//杩囨护绫诲瀷  timeType锛圱ODAY 锛氫粖澶╋紱LAST_3_DAYS: 杩�3澶╋紱LAST_7_DAYS 锛氳繎7澶╋紱LAST_30_DAYS 锛氳繎30澶╋級锛�
+    private String mTimeTypeFilterValue = FilterType.all;//杩囨护绫诲瀷鍊�  timeType锛圱ODAY 锛氫粖澶╋紱LAST_3_DAYS: 杩�3澶╋紱LAST_7_DAYS 锛氳繎7澶╋紱LAST_30_DAYS 锛氳繎30澶╋級锛�
 
 
+    //deviceType_filter_value deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級锛�
+    //     *                                type锛團AULT 锛氭晠闅滐紱 WARN 锛氬憡璀︼紱 EVENT 锛氫簨浠�(鎻愮ず)锛夛紱
+    //     *                                timeType锛圱ODAY 锛氫粖澶╋紱LAST_3_DAYS: 杩�3澶╋紱LAST_7_DAYS 锛氳繎7澶╋紱LAST_30_DAYS 锛氳繎30澶╋級锛�
     private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
-
-    LinearLayoutManager layoutManager;
+    LinearLayoutManager mLayoutManager;
 
     @Override
     public Object getContentView() {
@@ -55,6 +83,8 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
+        setNotificationBarBackgroundColor(CustomColor.white);
+        setStatusBarTextColor();
         //鍒濆鍖栨暟鎹�
         initData();
         //鍒濆鍖�
@@ -62,7 +92,14 @@
         //鍒濆鍖栫晫闈㈢洃鍚櫒
         initEvent();
         //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�)
-        loadNextPageNascentMessageList(1, true);
+        loadNextPageMessageList(1, true, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�)
+//        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
     }
 
     private void initEvent() {
@@ -70,7 +107,36 @@
         viewBinding.toolbarTopMessageCenterListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                clearCacheData();
+                HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
+                uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER);
+                JsonObject jsonObject = new JsonObject();
+                jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
+                uniCallBackBaseBean.setData(jsonObject);
+                HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                 finish();
+            }
+        });
+        //娓呯┖鎵�鏈夋湭璇绘寜閽�
+        viewBinding.toolbarTopMessageCenterListRl.topMoreBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                showLoading();
+                HdlMessageLogic.getInstance().messageAllRead(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<Boolean>() {
+                    @Override
+                    public void onSuccess(Boolean obj) {
+                        hideLoading();
+                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
+//                        HdlMessageLogic.getInstance().setAllRead(true);
+//                        updateListData();
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        hideLoading();
+                        HdlThreadLogic.toast(_mActivity, e);
+                    }
+                });
             }
         });
 
@@ -78,20 +144,21 @@
         viewBinding.messageTabAllDeviceCl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                List<String> stringList = new ArrayList<>();
-                stringList.add(getString(R.string.alarm_all_device));
-                stringList.add(getString(R.string.alarm_all_device_inverter));
-                stringList.add(getString(R.string.alarm_all_device_bms));
-                stringList.add(getString(R.string.alarm_all_device_battery_cell));
+                viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.up);
+                viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
+                viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
+                List<String> stringList = getTypeList(FilterType.deviceType);
                 TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList);
                 typeTitleListDialog.show();
                 typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() {
                     @Override
                     public void onClick(int position, String title) {
-                        viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.up);
-                        viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
-                        viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
+
                         viewBinding.allDeviceTitleTv.setText(title);
+                        mDeviceTypeFilterKye = FilterType.deviceType;
+                        mDeviceTypeFilterValue = findFilterValueString(title);
+                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
+
                     }
                 });
 
@@ -102,21 +169,19 @@
         viewBinding.messageTabAllGradeCl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
-                List<String> stringList = new ArrayList<>();
-                stringList.add(getString(R.string.alarm_all_grade));
-                stringList.add(getString(R.string.alarm_all_grade_malfunction));
-                stringList.add(getString(R.string.alarm_all_grade_warning));
-                stringList.add(getString(R.string.alarm_all_grade_tip));
+                viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
+                viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.up);
+                viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
+                List<String> stringList = getTypeList(FilterType.type);
                 TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList);
                 typeTitleListDialog.show();
                 typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() {
                     @Override
                     public void onClick(int position, String title) {
-                        viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
-                        viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.up);
-                        viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
                         viewBinding.allGradeTitleTv.setText(title);
+                        mTypeFilterKye = FilterType.type;
+                        mTypeFilterValue = findFilterValueString(title);
+                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
                     }
                 });
             }
@@ -125,22 +190,19 @@
         viewBinding.messageTabAllTimeCl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
-                List<String> stringList = new ArrayList<>();
-                stringList.add(getString(R.string.alarm_all_time));
-                stringList.add(getString(R.string.alarm_all_time_same_day));
-                stringList.add(getString(R.string.alarm_all_time_3));
-                stringList.add(getString(R.string.alarm_all_time_7));
-                stringList.add(getString(R.string.alarm_all_time_30));
+                viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
+                viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
+                viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.up);
+                List<String> stringList = getTypeList(FilterType.timeType);
                 TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList);
                 typeTitleListDialog.show();
                 typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() {
                     @Override
                     public void onClick(int position, String title) {
-                        viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
-                        viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
-                        viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.up);
                         viewBinding.allTimeTitleTv.setText(title);
+                        mTimeTypeFilterKye = FilterType.timeType;
+                        mTimeTypeFilterValue = findFilterValueString(title);
+                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
                     }
                 });
             }
@@ -150,18 +212,70 @@
         viewBinding.messageBottomAlarmDeviceCl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (isAlarmDeviceClick) {
+                    return;//闃叉澶氭鐐瑰嚮
+                }
                 isAlarmDeviceClick = true;
                 refreshBottomStyle(true);
+                loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
             }
         });
         //鍛婅璁板綍鎸夐挳
         viewBinding.messageBottomAlarmRecordCl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (!isAlarmDeviceClick) {
+                    return;//闃叉澶氭鐐瑰嚮
+                }
                 isAlarmDeviceClick = false;
                 refreshBottomStyle(false);
+                loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
+
             }
         });
+
+        //涓嬫媺鎸夐挳
+        viewBinding.messageContentSrl.setColorSchemeResources(R.color.text_FF245EC3);
+        viewBinding.messageContentSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                viewBinding.messageContentSrl.setRefreshing(false);
+                loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
+            }
+        });
+        //涓婃媺鎸夐挳
+        viewBinding.messageContentRl.addOnScrollListener(new RecyclerView.OnScrollListener() {
+            @Override
+            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+//                super.onScrolled(recyclerView, dx, dy);
+
+                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
+                if (layoutManager == null) {
+                    return;
+                }
+                int visibleItemCount = layoutManager.getChildCount();
+                int totalItemCount = layoutManager.getItemCount();
+                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
+                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
+                    if (!isLoadingMore) {
+                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                        HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+                        loadNextPageMessageList(++mCurrentPage, false, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
+                    }
+                }
+            }
+        });
+        if (messageCenterListAdapter != null) {
+            messageCenterListAdapter.setNoOnclickListener(new MessageCenterListAdapter.OnclickListener() {
+                @Override
+                public void onClick(int position, MessageBean messageBean) {
+                    Intent intent = new Intent();
+                    intent.putExtra("msgId", messageBean.getMsgId().toString());
+                    intent.setClass(_mActivity, MessageInfoActivity.class);
+                    startActivity(intent);
+                }
+            });
+        }
 
     }
 
@@ -177,9 +291,9 @@
         viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
         viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
         refreshBottomStyle(true);
-        layoutManager = new LinearLayoutManager(_mActivity);
+        mLayoutManager = new LinearLayoutManager(_mActivity);
         messageCenterListAdapter = new MessageCenterListAdapter(_mActivity);
-        viewBinding.messageContentRl.setLayoutManager(layoutManager);
+        viewBinding.messageContentRl.setLayoutManager(mLayoutManager);
         viewBinding.messageContentRl.setAdapter(messageCenterListAdapter);
         messageCenterListAdapter.setList(mList);
         this.nullDataUpdateUi();
@@ -191,13 +305,24 @@
     /**
      * 鍔犺浇涓�椤垫暟鎹�
      *
-     * @param pageNo        椤垫暟
-     * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
+     * @param pageNo                  椤垫暟
+     * @param isShowLoading           鏄惁鍚姩鍔犺浇妗� true鍚姩
+     * @param deviceType_filter_key   绫诲瀷锛堣澶囷紝绛夌骇锛屾椂闂达級
+     * @param deviceType_filter_value deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級锛�
+     *                                type锛團AULT 锛氭晠闅滐紱 WARN 锛氬憡璀︼紱 EVENT 锛氫簨浠�(鎻愮ず)锛夛紱
+     *                                timeType锛圱ODAY 锛氫粖澶╋紱LAST_3_DAYS: 杩�3澶╋紱LAST_7_DAYS 锛氳繎7澶╋紱LAST_30_DAYS 锛氳繎30澶╋級锛�
      */
-    private void loadNextPageNascentMessageList(int pageNo, boolean isShowLoading) {
+    private void loadNextPageMessageList(int pageNo, boolean isShowLoading,
+                                         String deviceType_filter_key, String deviceType_filter_value,
+                                         String type_filter_key, String type_filter_value,
+                                         String timeType_filter_key, String timeType_filter_value) {
+        if (pageNo == 1) {
+            //琛ㄧず浠庣涓�椤靛彲浠ヨ鍙栵紝榛樿娓呯┖鎵�鏈夌紦瀛樻暟鎹�;
+            clearCacheData();
+        }
         //绗竴椤佃鍙栨暟鎹己鍒惰
-        if (pageNo > 1 && currentPage > currentTotal) {
-            --currentPage;
+        if (pageNo > 1 && mCurrentPage > mCurrentTotal) {
+            --mCurrentPage;
             //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
             return;
         }
@@ -205,83 +330,94 @@
         if (isShowLoading) {
             showLoading();
         }
-        HdlMessageLogic.getInstance().getPageNoMessageList(pageNo, MessageStateType.untreated, new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
-            @Override
-            public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
-                if (messageListClass != null) {
-                    currentTotal = (int) messageListClass.getTotalPage();
-                    currentPage = (int) messageListClass.getPageNo();
-                    updateListData();
-                }
-                isLoadingMore = false;
-                if (isShowLoading) {
-                    hideLoading();
-                }
-            }
-
-            @Override
-            public void onFailure(HDLException e) {
-                if (currentPage > 1) {
-                    --currentPage;
-                }
-                isLoadingMore = false;
-                if (isShowLoading) {
-                    hideLoading();
-                }
-            }
-        });
-    }
-
-    /**
-     * 璇诲彇娑堟伅銆愭湭璇绘暟閲忋��
-     */
-    private void getUnreadCount() {
-        HdlMessageLogic.getInstance().getMessageUntreatedCount(new CloudCallBeak<String>() {
-            @Override
-            public void onSuccess(String data) {
-
-                HdlThreadLogic.runMainThread(new Runnable() {
+        String messageStateType;
+        if (isAlarmDeviceClick) {
+            messageStateType = MessageStateType.untreated;
+        } else {
+            messageStateType = MessageStateType.processed;
+        }
+        HdlMessageLogic.getInstance().getPageNoMessageList(UserConfigManage.getInstance().getHomeId(), pageNo, messageStateType,
+                deviceType_filter_key, deviceType_filter_value,
+                type_filter_key, type_filter_value,
+                timeType_filter_key, timeType_filter_value,
+                new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
                     @Override
-                    public void run() {
-                        JSONObject jsonObject = JSON.parseObject(data);
-                        if (jsonObject.containsKey("untreatedCount")) {
-                            //鏈鐞嗘暟閲�
-                            String untreatedCount = jsonObject.getString("untreatedCount");
-                            refreshNascentCount(untreatedCount);
+                    public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
+                        if (messageListClass != null) {
+                            mCurrentTotal = (int) messageListClass.getTotalPage();
+                            mCurrentPage = (int) messageListClass.getPageNo();
+                            int totalCount = (int) messageListClass.getTotalCount();
+                            if (isAlarmDeviceClick) {
+                                mTotalCount1 = totalCount;
+                            } else {
+                                mTotalCount2 = totalCount;
+                            }
+                            updateListData();
                         }
-                        if (jsonObject.containsKey("unreadCount")) {
-                            //鏈鏁伴噺
-                            String unreadCount = jsonObject.getString("unreadCount");
-                            refreshUnreadNascentCount(unreadCount);
+                        isLoadingMore = false;
+                        if (isShowLoading) {
+                            hideLoading();
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        if (mCurrentPage > 1) {
+                            --mCurrentPage;
+                        }
+                        isLoadingMore = false;
+                        if (isShowLoading) {
+                            hideLoading();
                         }
                     }
                 });
 
-            }
 
-            @Override
-            public void onFailure(HDLException e) {
-                TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
-                if (textView != null) {
-                    textView.setVisibility(View.GONE);
+    }
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
+    public void onEventMessage(BaseEventBus eventBus) {
+        super.onEventMessage(eventBus);
+        if (eventBus == null) {
+            return;
+        }
+        if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
+            if (eventBus.getType().equals(MessageStateType.untreated)) {
+                updateListData();
+            } else if (eventBus.getType().equals(MessageStateType.processed)) {
+                if (mTotalCount1 > 0) {
+                    mTotalCount1--;
+                    mTotalCount2++;
                 }
+                updateListData();
             }
-        });
+        }
     }
 
     /**
      * 鍒锋柊淇℃伅鏁伴噺鎬绘暟
      */
-    private void refreshNascentCount(String totalCount) {
+    private void refreshCount() {
         HdlThreadLogic.runMainThread(new Runnable() {
             @Override
             public void run() {
-                TextView textView = _mActivity.findViewById(R.id.message_bottom_alarm_device_title_tv);
-                if (textView != null) {
-                    textView.setText(getText(R.string.alarm_device));
-                    if (!TextUtils.isEmpty(totalCount) && !totalCount.equals("0")) {
-                        String s = getText(R.string.message_nascent) + "(" + totalCount + ")";
-                        textView.setText(s);
+                //璁惧鎶ヨ鎬绘暟閲�
+                TextView textView1 = _mActivity.findViewById(R.id.message_bottom_alarm_device_title_tv);
+                if (textView1 != null) {
+                    textView1.setText(getText(R.string.alarm_device));
+                    if (mTotalCount1 > 0) {
+                        String s = getText(R.string.alarm_device) + "(" + mTotalCount1 + ")";
+                        textView1.setText(s);
+                    }
+                }
+                //鎶ヨ璁板綍鎬绘暟閲�
+                TextView textView2 = _mActivity.findViewById(R.id.message_bottom_alarm_record_title_tv);
+                if (textView2 != null) {
+                    textView2.setText(getText(R.string.alarm_record));
+                    if (mTotalCount2 > 0) {
+                        String s = getText(R.string.alarm_record) + "(" + mTotalCount2 + ")";
+                        textView2.setText(s);
                     }
                 }
             }
@@ -317,31 +453,6 @@
 
 
     /**
-     * 鍒锋柊瑙掓爣銆愭湭璇汇�戜俊鎭暟閲忔�绘暟
-     */
-    private void refreshUnreadNascentCount(String unreadCount) {
-        HdlThreadLogic.runMainThread(new Runnable() {
-            @SuppressLint("SetTextI18n")
-            @Override
-            public void run() {
-                TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
-                if (textView != null) {
-                    if (TextUtils.isEmpty(unreadCount) || unreadCount.equals("0")) {
-                        textView.setVisibility(View.GONE);
-                    } else {
-                        textView.setVisibility(View.VISIBLE);
-                        if (unreadCount.length() > 2) {
-                            textView.setText("99+");
-                        } else {
-                            textView.setText(unreadCount);
-                        }
-                    }
-                }
-            }
-        });
-    }
-
-    /**
      * 鍒锋柊鍒楄〃鏁版嵁
      */
     private void updateListData() {
@@ -351,11 +462,9 @@
                 //璇诲彇缂撳瓨鏁版嵁
                 updateCacheData();
                 //鍒锋柊鍒楄〃
-                if (messageCenterListAdapter != null) {
-                    messageCenterListAdapter.setList(mList);
-                }
+                updateRecyclerViewList();
                 //鏄剧ず鏈淇℃伅鎬绘暟閲�
-                getUnreadCount();
+                refreshCount();
                 //鏄剧ず娌℃暟鎹甎i鏍峰紡
                 nullDataUpdateUi();
 
@@ -364,11 +473,36 @@
     }
 
     /**
+     * 閲嶆柊鏇存柊鍒楄〃鏁版嵁
+     */
+    private void updateRecyclerViewList() {
+        if (messageCenterListAdapter == null) {
+            return;
+        }
+        messageCenterListAdapter.setList(mList);
+    }
+
+    /**
+     * 娓呯┖鎵�鏈夌紦瀛樻暟鎹�(鑾峰彇绗竴椤典箣鍓嶈娓呯┖鎵�鏈夌紦瀛樻暟鎹�)
+     */
+    private void clearCacheData() {
+        mList.clear();
+        HdlMessageLogic.getInstance().clearListMessage();//琛ㄧず寮哄埗娓呯┖鎵�鏈夌紦瀛樹俊鎭�
+    }
+
+
+    /**
      * 鏇存柊缂撳瓨鏁版嵁
      */
     private void updateCacheData() {
         mList.clear();
-        mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
+        if (isAlarmDeviceClick) {
+            //璁惧鎶ヨ
+            mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
+        } else {
+            //鎶ヨ璁板綍
+            mList.addAll(HdlMessageLogic.getInstance().getRecoverMessageMemoryList());
+        }
     }
 
 
@@ -378,4 +512,84 @@
     private void nullDataUpdateUi() {
         HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.message_alarm_data_null), mList.size() > 0);
     }
+
+    /**
+     * 鏌ユ壘杩囨护鍊�
+     *
+     * @param title 鏍囬
+     * @return 杩囨护鍊�
+     */
+    public String findFilterValueString(String title) {
+        Map<String, String> map = new HashMap<>();
+        map.put(getString(R.string.alarm_all_device), "");//璁惧鍏ㄩ儴
+        map.put(getString(R.string.alarm_all_device_inverter), "INV");
+        map.put(getString(R.string.alarm_all_device_bms), "BMS");
+        map.put(getString(R.string.alarm_all_device_battery_cell), "BATTERY");
+        map.put(getString(R.string.alarm_all_grade), "");//璁剧瓑绾у叏閮�
+        map.put(getString(R.string.alarm_all_grade_malfunction), "FAULT");
+        map.put(getString(R.string.alarm_all_grade_warning), "WARN");
+        map.put(getString(R.string.alarm_all_grade_tip), "EVENT");
+        map.put(getString(R.string.alarm_all_time), "");//鏃堕棿鍏ㄩ儴
+        map.put(getString(R.string.alarm_all_time_same_day), "TODAY");
+        map.put(getString(R.string.alarm_all_time_3), "LAST_3_DAYS");
+        map.put(getString(R.string.alarm_all_time_7), "LAST_7_DAYS");
+        map.put(getString(R.string.alarm_all_time_30), "LAST_30_DAYS");
+
+        for (Map.Entry<String, String> entry : map.entrySet()) {
+            if (title.equals(entry.getKey())) {
+                return entry.getValue();
+            }
+        }
+        return "";
+    }
+
+    /**
+     * 鑾峰彇绫诲瀷鍒楄〃
+     *
+     * @param filterType 杩囨护绫诲瀷
+     * @return 杩斿洖绫诲瀷鍒楄〃
+     */
+    private List<String> getTypeList(String filterType) {
+        List<String> stringList = new ArrayList<>();
+        switch (filterType) {
+            case FilterType.deviceType: {
+                stringList.add(getString(R.string.alarm_all_device));
+                stringList.add(getString(R.string.alarm_all_device_inverter));
+                stringList.add(getString(R.string.alarm_all_device_bms));
+                stringList.add(getString(R.string.alarm_all_device_battery_cell));
+            }
+            break;
+            case FilterType.type: {
+                stringList.add(getString(R.string.alarm_all_grade));
+                stringList.add(getString(R.string.alarm_all_grade_malfunction));
+                stringList.add(getString(R.string.alarm_all_grade_warning));
+                stringList.add(getString(R.string.alarm_all_grade_tip));
+            }
+            break;
+            case FilterType.timeType: {
+                stringList.add(getString(R.string.alarm_all_time));
+                stringList.add(getString(R.string.alarm_all_time_same_day));
+                stringList.add(getString(R.string.alarm_all_time_3));
+                stringList.add(getString(R.string.alarm_all_time_7));
+                stringList.add(getString(R.string.alarm_all_time_30));
+            }
+            break;
+        }
+        return stringList;
+    }
+
+    /**
+     * 鐗╃悊鎸夐敭杩斿洖浜嬩欢
+     */
+    @Override
+    public void onBackPressed() {
+        clearCacheData();
+        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
+        uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER);
+        JsonObject jsonObject = new JsonObject();
+        jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
+        uniCallBackBaseBean.setData(jsonObject);
+        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
+        super.onBackPressed();
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0