From d0dc2a8ce665ddcc5436270550602a1b672d248f Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期六, 11 五月 2024 11:03:35 +0800
Subject: [PATCH] 2024年05月11日11:03:33

---
 app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java |  172 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 92 insertions(+), 80 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
index aecfe33..62986e6 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
@@ -1,6 +1,7 @@
 package com.hdl.photovoltaic.ui.message;
 
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextUtils;
@@ -19,15 +20,18 @@
 import com.hdl.photovoltaic.base.CustomBaseActivity;
 import com.hdl.photovoltaic.bean.PageNumberObject;
 import com.hdl.photovoltaic.databinding.ActivitySearchMessgeBinding;
+import com.hdl.photovoltaic.enums.MessageStateType;
 import com.hdl.photovoltaic.enums.ShowErrorMode;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
 import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.other.HdlMessageLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.ui.adapter.SearchHistoryAdapter;
 import com.hdl.photovoltaic.ui.adapter.SearchMessageAdapter;
 import com.hdl.photovoltaic.ui.bean.DeviceBean;
+import com.hdl.photovoltaic.ui.bean.MessageBean;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -43,11 +47,10 @@
     SearchMessageAdapter searchMessageAdapter;//璁惧閫傞厤鍣�
     SearchHistoryAdapter searchHistoryAdapter;//鍘嗗彶璁板綍閫傞厤鍣�
 
-    private List<DeviceBean> deviceList = new ArrayList<>();
-
-    private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜
-    private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮�
-    private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
+    private final List<MessageBean> mList = new ArrayList<>();
+    private int mCurrentPage = 0; // 褰撳墠椤电爜
+    private int mCurrentTotal = 0; // 鎬婚〉鐮�
+    private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
 
     private String currSearchText;
 
@@ -95,8 +98,6 @@
             }
         });
         viewBinding.messageSearchEt.addTextChangedListener(textWatcher);
-
-
         //鎼滅储
         viewBinding.powerStationSearchTv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -110,7 +111,7 @@
                 viewBinding.historyListParent.setVisibility(View.GONE);
                 viewBinding.listParent.setVisibility(View.VISIBLE);
                 addSearchTextToList();
-                loadNextPageHouseList(true, 1, true);
+                loadNextPageMessageList(true, 1, viewBinding.messageSearchEt.getText().toString(), true);
             }
         });
 
@@ -122,7 +123,7 @@
             @Override
             public void onRefresh() {
                 viewBinding.listSrl.setRefreshing(false);
-                loadNextPageHouseList(true, 1, true);
+                loadNextPageMessageList(true, 1, viewBinding.messageSearchEt.getText().toString(), true);
             }
         });
         //涓婃媺璇诲彇
@@ -137,10 +138,10 @@
                 int totalItemCount = layoutManager.getItemCount();
                 int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
                 if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
-                    if (!isHouseLoadingMore) {
+                    if (!isLoadingMore) {
                         // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
                         HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageHouseList(false, ++currentHouseListPage, false);
+                        loadNextPageMessageList(false, ++mCurrentPage, viewBinding.messageSearchEt.getText().toString(), false);
                     }
                 }
             }
@@ -154,7 +155,7 @@
                 viewBinding.historyListParent.setVisibility(View.VISIBLE);
                 viewBinding.listParent.setVisibility(View.GONE);
                 searchHistoryAdapter.setList(searchHistoryTitleList);
-                clearData();
+                clearCacheData();
             }
         });
         //鍒犻櫎
@@ -173,11 +174,14 @@
                 viewBinding.messageSearchEt.setText(title);
             }
         });
-        //鐢电珯鐐瑰嚮鏄簨浠�
+        //娑堟伅鐐瑰嚮鏄簨浠�
         searchMessageAdapter.setOnclickListener(new SearchMessageAdapter.OnClickListener() {
             @Override
-            public void onClick(int position, DeviceBean deviceBean) {
-
+            public void onClick(int position, MessageBean messageBean) {
+                Intent intent = new Intent();
+                intent.putExtra("msgId", messageBean.getMsgId().toString());
+                intent.setClass(_mActivity, MessageInfoActivity.class);
+                startActivity(intent);
             }
         });
 
@@ -192,7 +196,7 @@
         viewBinding.historyListRcv.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.historyListRcv.setAdapter(searchHistoryAdapter);
         searchHistoryAdapter.setList(searchHistoryTitleList);
-        //鍒濆鍖栫數绔欓�傞厤鍣�
+        //鍒濆鍖栨秷鎭�傞厤鍣�
         searchMessageAdapter = new SearchMessageAdapter(_mActivity);
         viewBinding.listRcv.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.listRcv.setAdapter(searchMessageAdapter);
@@ -226,6 +230,20 @@
     };
 
     /**
+     * 鍒锋柊鍒楄〃鏁版嵁
+     */
+    private void updateListData() {
+        HdlThreadLogic.runMainThread(new Runnable() {
+            @Override
+            public void run() {
+                if (searchMessageAdapter != null) {
+                    searchMessageAdapter.setList(mList);
+                }
+            }
+        });
+    }
+
+    /**
      * 鐗╃悊鎸夐敭杩斿洖浜嬩欢
      */
     @Override
@@ -243,90 +261,84 @@
         super.onDestroy();
     }
 
+
     /**
-     * 鍒锋柊UI锛堣澶囷級
+     * 鍔犺浇涓�椤垫暟鎹�
      *
-     * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
+     * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
+     * @param pageNo        椤垫暟
+     * @param search_title  鎼滅储鏂囨湰
+     * @param isClear       true琛ㄧず娓呯┖缂撳瓨
      */
-    private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) {
-
-        //鎼滅储鍏抽敭瀛�
-        if (TextUtils.isEmpty(currSearchText)) {
-            return;
-        }
-
+    private void loadNextPageMessageList(boolean isShowLoading, int pageNo, String search_title, boolean isClear) {
         if (isClear) {
-            clearData();
+            //琛ㄧず浠庣涓�椤靛彲浠ヨ鍙栵紝榛樿娓呯┖鎵�鏈夌紦瀛樻暟鎹�;
+            clearCacheData();
         }
-        //绗竴椤佃鍙栨暟鎹己鍒惰鍙�
-        if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) {
-            --currentHouseListPage;
+        //绗竴椤佃鍙栨暟鎹己鍒惰
+        if (pageNo > 1 && mCurrentPage > mCurrentTotal) {
+            --mCurrentPage;
             //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁�
             return;
         }
-        isHouseLoadingMore = true;//鏍囪璇诲彇鐘舵��
-        if (isRefreshing) {
+        isLoadingMore = true;//鏍囪璇诲彇鐘舵��
+        if (isShowLoading) {
             showLoading();
         }
-
-        //鑾峰彇浜戠涓婅澶囧垪琛�
-        HdlDeviceLogic.getInstance().getPowerStationDeviceList(currSearchText, pageNo, 20, new CloudCallBeak<PageNumberObject<DeviceBean>>() {
-            @Override
-            public void onSuccess(PageNumberObject<DeviceBean> deviceClass) {
-                HdlThreadLogic.runMainThread(new Runnable() {
+        HdlMessageLogic.getInstance().getPageNoMessageList(
+                "",
+                pageNo,
+                "",
+                "",
+                "",
+                "",
+                "",
+                "",
+                "",
+                search_title,
+                new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
                     @Override
-                    public void run() {
-                        if (isRefreshing) {
+                    public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
+                        if (messageListClass != null) {
+                            mCurrentTotal = (int) messageListClass.getTotalPage();
+                            mCurrentPage = (int) messageListClass.getPageNo();
+                            setMessageList(messageListClass.getList());
+                            updateListData();
+                        }
+                        isLoadingMore = false;
+                        if (isShowLoading) {
                             hideLoading();
                         }
-                        isHouseLoadingMore = false;
-                        if (deviceClass != null) {
-                            currentHouseListTotal = (int) deviceClass.getTotalPage();
-                            currentHouseListPage = (int) deviceClass.getPageNo();
-                            //鏇存柊缂撳瓨
-                            setDeviceList(deviceClass.getList());
-                            if (searchMessageAdapter != null) {
-                                initData();
-                                //鏇存柊UI
-                                searchMessageAdapter.setList(deviceList);
-                            }
-                        }
                     }
-                }, _mActivity, ShowErrorMode.YES);
 
-            }
-
-            @Override
-            public void onFailure(HDLException e) {
-                HdlThreadLogic.runMainThread(new Runnable() {
                     @Override
-                    public void run() {
-                        if (currentHouseListPage > 1) {
-                            --currentHouseListPage;
+                    public void onFailure(HDLException e) {
+                        if (mCurrentPage > 1) {
+                            --mCurrentPage;
                         }
-                        isHouseLoadingMore = false;
-                        if (isRefreshing) {
+                        isLoadingMore = false;
+                        if (isShowLoading) {
                             hideLoading();
                         }
-
                     }
-                }, _mActivity, ShowErrorMode.YES);
-            }
-        });
+                });
+
+
     }
 
-    private void clearData() {
-        if (deviceList != null && deviceList.size() > 0) {
-            deviceList.clear();
+
+    private void clearCacheData() {
+        if (mList != null && mList.size() > 0) {
+            mList.clear();
         }
     }
 
-    public void setDeviceList(List<DeviceBean> list) {
+    public void setMessageList(List<MessageBean> list) {
         if (list == null || list.size() == 0) {
             return;
         }
-        if (this.deviceList.size() == 0) {
-            this.deviceList.addAll(list);
+        if (this.mList.size() == 0) {
+            this.mList.addAll(list);
             return;
         }
         for (int i = 0; i < list.size(); i++) {
@@ -337,26 +349,26 @@
     /**
      * 娣诲姞璁惧鍒板垪琛ㄩ噷闈�
      *
-     * @param deviceBean -璁惧瀵硅薄
+     * @param messageBean -璁惧瀵硅薄
      */
-    public void setSingleDevice(DeviceBean deviceBean) {
+    public void setSingleDevice(MessageBean messageBean) {
         try {
-            if (deviceBean == null) {
+            if (messageBean == null) {
                 return;
             }
             boolean if_boolean = false;
-            for (int i = 0; i < deviceList.size(); i++) {
-                if (deviceList.get(i).getHomeId().equals(deviceBean.getHomeId())) {
+            for (int i = 0; i < mList.size(); i++) {
+                if (mList.get(i).getHomeId().equals(messageBean.getHomeId())) {
                     //瀛樺湪鏇挎崲
-                    deviceList.remove(i);
-                    deviceList.add(i, deviceBean);
+                    mList.remove(i);
+                    mList.add(i, messageBean);
                     if_boolean = true;
                     break;
                 }
             }
             if (!if_boolean) {
                 //娌℃湁娣诲姞
-                this.deviceList.add(deviceBean);
+                this.mList.add(messageBean);
             }
         } catch (Exception e) {
             String mes = e.getMessage();

--
Gitblit v1.8.0