From 382d057f20369b001fe585ab3027bf5a4cd27539 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 09 四月 2025 17:49:40 +0800
Subject: [PATCH] 2025年04月09日17:49:01

---
 app/src/main/res/layout/fragment_house_list.xml                                    |   14 +
 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java             |  109 +++++++++----
 app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java               |    7 
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java |  297 ++++++++++++++++++++++---------------
 app/src/main/res/layout/fragment_message.xml                                       |   10 
 app/src/main/res/layout/item_message.xml                                           |    1 
 app/src/main/res/layout/item_plant_details.xml                                     |    1 
 app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java                  |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java               |    2 
 9 files changed, 274 insertions(+), 169 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
index 8edfab2..05d0f10 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -24,7 +24,7 @@
 public class HdlMessageLogic {
     private static volatile HdlMessageLogic sHdlMessageLogic;
 
-    private final int pageSize = 50;//椤垫暟
+    private final int pageSize = 100;//椤垫暟
     private List<MessageBean> mListMessage = new ArrayList<>();
 
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
index d73a6e3..b16a231 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
@@ -143,7 +143,7 @@
         if (savedInstanceState != null) {
             //鈥滃唴瀛橀噸鍚�濇椂璋冪敤 鑾峰彇鈥滃唴瀛橀噸鍚�濇椂淇濆瓨鐨勭储寮曚笅鏍�
             currentFragmentIndex = savedInstanceState.getInt(CURRENT_FRAGMENT, 0);
-            if (fragmentList.size() != 0) {
+            if (!fragmentList.isEmpty()) {
                 fragmentList.clear();
             }
             fragmentList.add(mFragmentManager.findFragmentByTag(0 + ""));
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
index fb3783c..ed0af8e 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -467,11 +467,14 @@
         viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
         viewBinding.autoSizeMyAAChart.setBackgroundColor(_mActivity.getColor(R.color.text_FF1C1C1E));
         setUpAAChartView(true);//鍥捐〃鍔犺浇
-        processLogic();
+        pullToRefresh();
 
     }
 
-    protected void processLogic() {
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
         viewBinding.rsl.setDelegate(this);
         HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
         hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
index 5b8011c..0b879ce 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
@@ -3,6 +3,7 @@
 import android.annotation.SuppressLint;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.TextView;
@@ -32,6 +33,8 @@
 import com.hdl.photovoltaic.ui.bean.UnCountBean;
 import com.hdl.photovoltaic.widget.BTypeTitleListDialog;
 import com.hdl.photovoltaic.widget.TypeTitleListDialog;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 
 import org.greenrobot.eventbus.EventBus;
@@ -160,17 +163,17 @@
         viewBinding.allClearIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                showLoading();
+//                showLoading();
                 HdlMessageLogic.getInstance().messageAllRead("", new CloudCallBeak<Boolean>() {
                     @Override
                     public void onSuccess(Boolean obj) {
-                        hideLoading();
+//                        hideLoading();
                         loadNextPageMessageList(true, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
                     }
 
                     @Override
                     public void onFailure(HDLException e) {
-                        hideLoading();
+//                        hideLoading();
                         HdlThreadLogic.toast(_mActivity, e);
                     }
                 });
@@ -207,38 +210,6 @@
                 viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
                 viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.up);
                 setTypeTitleListDialog(viewBinding.allTimeTitleTv, FilterType.timeType, getTypeList(FilterType.timeType));
-            }
-        });
-
-        //涓嬫媺鎸夐挳
-        viewBinding.messageSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        viewBinding.messageSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.messageSrl.setRefreshing(false);
-                loadNextPageMessageList(true, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
-            }
-        });
-        //涓婃媺鎸夐挳
-        viewBinding.messageRcv.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(false, ++mCurrentPage, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, false);
-                    }
-                }
             }
         });
         if (mMessageAdapter != null) {
@@ -313,8 +284,76 @@
         mMessageAdapter = new MessageAdapter(_mActivity);
         viewBinding.messageRcv.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.messageRcv.setAdapter(mMessageAdapter);
+        pullToRefresh();
     }
 
+    /**
+     * 涓嬫媺鍒锋柊鐨勯�昏緫
+     */
+    protected void pullToRefresh() {
+        viewBinding.messageSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                new AsyncTask<Void, Void, Void>() {
+
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(1000);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        // 鎵ц浠诲姟锛堝鏇存柊UI銆佽烦杞瓑锛�
+                        viewBinding.messageSrl.endRefreshing();
+                        loadNextPageMessageList(true, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
+
+                    }
+                }.execute();
+
+
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+                new AsyncTask<Void, Void, Void>() {
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(10);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        viewBinding.messageSrl.endLoadingMore();
+                        //鍔犺浇鏈�鏂版暟鎹畬鎴�
+                        if (!isLoadingMore) {
+                            // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                            loadNextPageMessageList(false, ++mCurrentPage, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, false);
+                        }
+                    }
+                }.execute();
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.messageSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
+
+
+
     private void initData() {
         //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�),app鍚姩鏃跺�欒鍙栵紝涓轰簡鍒锋柊娑堟伅妯″潡鐨勮鏍�
         loadNextPageMessageList(true, 1, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, true);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
index 4d7c7e4..f1fe445 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -5,11 +5,14 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.location.LocationManager;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.provider.Settings;
 import android.view.View;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
+import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.appcompat.content.res.AppCompatResources;
@@ -55,6 +58,8 @@
 import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
 import com.hdl.photovoltaic.widget.DefaultFilteringDialog;
 import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog;
+import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
+import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
 import com.hdl.sdk.link.common.exception.HDLLinkException;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
@@ -99,7 +104,7 @@
     private String screeningConditionStatus = DebugStatus.All;//绛涢�夋潯浠剁姸鎬�
     private String powerStationStatusValue = PowerStationStatus.All;//鐢电珯鐘舵��(鍏ㄩ儴 涓嶄紶璇ヨ繃婊ゅ弬鏁�,1:姝e父(杩愯),2:绂荤嚎,3:寰呮帴鍏�,4:鏁呴殰)
 
-    private final long pageSize = 20;//椤垫暟
+    private final long pageSize = 100;//涓�椤靛ぇ灏�
 
     /**
      * 杩樺師鏉′欢鐨勫垵濮嬪寲鐘舵��
@@ -166,15 +171,7 @@
                     return;
                 }
                 powerStationStatusValue = PowerStationStatus.All;
-                viewBinding.allLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_yes_ffffff));
-                viewBinding.faultsLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.offlineLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.connectedLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-
-                viewBinding.allDesTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
-                viewBinding.faultsDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.offlineDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.connectedDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+                stationStatusStyle(viewBinding.allLl,viewBinding.allDesTv);
                 getStatusOverview();
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
@@ -187,15 +184,7 @@
                     return;
                 }
                 powerStationStatusValue = PowerStationStatus.malfunction;
-                viewBinding.allLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.faultsLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_yes_ffffff));
-                viewBinding.offlineLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.connectedLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-
-                viewBinding.allDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.faultsDesTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
-                viewBinding.offlineDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.connectedDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+                stationStatusStyle(viewBinding.faultsLl,viewBinding.faultsDesTv);
                 getStatusOverview();
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
@@ -208,15 +197,7 @@
                     return;
                 }
                 powerStationStatusValue = PowerStationStatus.off;
-                viewBinding.allLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.faultsLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.offlineLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_yes_ffffff));
-                viewBinding.connectedLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-
-                viewBinding.allDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.faultsDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.offlineDesTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
-                viewBinding.connectedDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+                stationStatusStyle(viewBinding.offlineLl,viewBinding.offlineDesTv);
                 getStatusOverview();
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
@@ -229,14 +210,7 @@
                     return;
                 }
                 powerStationStatusValue = PowerStationStatus.connecting;
-                viewBinding.allLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.faultsLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.offlineLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-                viewBinding.connectedLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_yes_ffffff));
-                viewBinding.allDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.faultsDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.offlineDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-                viewBinding.connectedDesTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
+                stationStatusStyle(viewBinding.connectedLl,viewBinding.connectedDesTv);
                 getStatusOverview();
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
@@ -283,40 +257,6 @@
                         loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                     }
                 });
-            }
-        });
-
-        //鐢电珯璁剧疆涓嬫媺绠ご棰滆壊
-        viewBinding.fragmentHouseSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        //鐢电珯涓嬫媺璇诲彇
-        viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.fragmentHouseSrl.setRefreshing(false);
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
-                getStatusOverview();
-            }
-        });
-        //鐢电珯涓婃媺璇诲彇
-        viewBinding.fragmentHouseSrlListRc.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 (!isHouseLoadingMore) {
-                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, ++currentHouseListPage, false);
-                    }
-                }
             }
         });
         //鐢电珯璇︽儏杩涘叆,鍒犻櫎鐢电珯,绉诲姩鐢电珯浣嶇疆
@@ -421,7 +361,7 @@
             @Override
             public void onClick(View v) {
                 boolean isSelected = !v.isSelected();
-                screenIconState(viewBinding.stationNameRl, viewBinding.stationNameIv, isSelected);
+                screeningConditionStyle(viewBinding.stationNameRl, viewBinding.stationNameIv, isSelected);
                 key = SortType.installedCapacitySort;
                 value = isSelected ? SortValue.ascending : SortValue.descending;
                 getStatusOverview();
@@ -433,7 +373,7 @@
             @Override
             public void onClick(View v) {
                 boolean isSelected = !v.isSelected();
-                screenIconState(viewBinding.stationPowerRl, viewBinding.stationPowerIv, isSelected);
+                screeningConditionStyle(viewBinding.stationPowerRl, viewBinding.stationPowerIv, isSelected);
                 key = SortType.invPowerSort;
                 value = isSelected ? SortValue.ascending : SortValue.descending;
                 getStatusOverview();
@@ -445,7 +385,7 @@
             @Override
             public void onClick(View v) {
                 boolean isSelected = !v.isSelected();
-                screenIconState(viewBinding.stationMonthRl, viewBinding.stationMonthIv, isSelected);
+                screeningConditionStyle(viewBinding.stationMonthRl, viewBinding.stationMonthIv, isSelected);
                 key = SortType.batteryCapacitySort;
                 value = isSelected ? SortValue.ascending : SortValue.descending;
                 getStatusOverview();
@@ -457,7 +397,7 @@
             @Override
             public void onClick(View v) {
                 boolean isSelected = !v.isSelected();
-                screenIconState(viewBinding.stationDayRl, viewBinding.stationDayIv, isSelected);
+                screeningConditionStyle(viewBinding.stationDayRl, viewBinding.stationDayIv, isSelected);
                 key = SortType.todayElectricitySort;
                 value = isSelected ? SortValue.ascending : SortValue.descending;
                 getStatusOverview();
@@ -508,38 +448,6 @@
                 });
             }
         });
-        //璁惧璁剧疆涓嬫媺绠ご棰滆壊
-        viewBinding.fragmentDeviceSrl.setColorSchemeResources(R.color.text_FF245EC3);
-        //璁惧涓嬫媺璇诲彇
-        viewBinding.fragmentDeviceSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                viewBinding.fragmentDeviceSrl.setRefreshing(false);
-                loadNextPageDeviceList(false, 1, true);
-            }
-        });
-        //璁惧涓婃媺璇诲彇
-        viewBinding.fragmentDeviceSrlListRc.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 (!isDeviceLoadingMore) {
-                        // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴");
-                        loadNextPageDeviceList(false, ++currentDeviceListPage, false);
-                    }
-                }
-            }
-        });
         //璁惧鎼滅储
         viewBinding.deviceSearchCl.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -552,14 +460,36 @@
 
     }
 
+
     /**
-     * 鏇存柊绛涢�夋潯浠剁姸鎬�
+     * 鏇存柊绛涢�夌數绔欑姸鎬佹牱寮�
+     *
+     * @param ll 缁勪欢鍚嶇О
+     * @param tv 缁勪欢鍚嶇О
+     */
+    private void stationStatusStyle(LinearLayout ll, TextView tv) {
+        viewBinding.allLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
+        viewBinding.faultsLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
+        viewBinding.offlineLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
+        viewBinding.connectedLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
+        viewBinding.allDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+        viewBinding.faultsDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+        viewBinding.offlineDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+        viewBinding.connectedDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+
+        ll.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_yes_ffffff));
+        tv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
+
+    }
+
+    /**
+     * 鏇存柊绛涢�夋潯浠剁姸鎬佹牱寮�
      *
      * @param relativeLayout 缁勪欢鍚嶇О
      * @param imageView      缁勪欢鍚嶇О
      * @param isSelected     鐘舵��
      */
-    private void screenIconState(RelativeLayout relativeLayout, ImageView imageView, boolean isSelected) {
+    private void screeningConditionStyle(RelativeLayout relativeLayout, ImageView imageView, boolean isSelected) {
         viewBinding.stationNameRl.setSelected(false);
         viewBinding.stationNameIv.setSelected(false);
         viewBinding.stationPowerRl.setSelected(false);
@@ -572,18 +502,12 @@
         imageView.setSelected(isSelected);
     }
 
+
     private void initView() {
         viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
         viewBinding.deviceLabelParent.setVisibility(View.GONE);
-        viewBinding.allLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_yes_ffffff));
-        viewBinding.faultsLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-        viewBinding.offlineLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-        viewBinding.connectedLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
 
-        viewBinding.allDesTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
-        viewBinding.faultsDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-        viewBinding.offlineDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
-        viewBinding.connectedDesTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
+        stationStatusStyle(viewBinding.allLl,viewBinding.allDesTv);
         //鐢电珯鏍囩
         houseInfoAdapter = new HouseInfoAdapter(_mActivity);
         viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
@@ -594,7 +518,12 @@
         deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
         viewBinding.fragmentDeviceSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.fragmentDeviceSrlListRc.setAdapter(deviceInfoAdapter);
+        //
 //        this.nullDataUpdateUi();
+        //涓嬫媺鍒锋柊浣忓畢鐨勯�昏緫
+        pullToRefreshHome();
+        //涓嬫媺鍒锋柊璁惧鐨勯�昏緫
+        pullToRefreshDevice();
 
     }
 
@@ -800,7 +729,7 @@
     /**
      * 鍒锋柊UI锛堢數绔欙級
      *
-     * @param isRefreshing         琛ㄧず鏄笅鎷夊埛鏂扮殑
+     * @param isRefreshing         鏄惁鏄剧ず鍔犺浇妗嗭紙true鏄剧ず锛宖alse涓嶆樉绀猴級
      * @param key                  鍙戠數鍔熺巼鎺掑簭(powerSort);
      *                             浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort);
      *                             鍒涘缓鏃堕棿鎺掑簭(createTimeSort);
@@ -880,7 +809,7 @@
     /**
      * 鍒锋柊UI锛堣澶囷級
      *
-     * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
+     * @param isRefreshing 鏄惁鏄剧ず鍔犺浇妗嗭紙true鏄剧ず锛宖alse涓嶆樉绀猴級
      * @param pageNo       椤电爜
      * @param isClear      true琛ㄧず娓呯┖缂撳瓨
      */
@@ -976,12 +905,12 @@
         boolean is_data;
         String tipText = "";
         if (isClickPowerStationLabel) {
-            is_data = houseListBeanIDList != null && houseListBeanIDList.size() > 0;
+            is_data = houseListBeanIDList != null && !houseListBeanIDList.isEmpty();
             tipText = getString(R.string.my_power_station_data_null);
             HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.homeNullDataIc.getRoot(), viewBinding.homeNullDataIc.nullDataGifAnimationIv, viewBinding.homeNullDataIc.nullDataTv, tipText, is_data);
 
         } else {
-            is_data = deviceInfoList != null && deviceInfoList.size() > 0;
+            is_data = deviceInfoList != null && !deviceInfoList.isEmpty();
             tipText = getString(R.string.no_equipment);
 
             HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.deviceNullDataIc.getRoot(), viewBinding.deviceNullDataIc.nullDataGifAnimationIv, viewBinding.deviceNullDataIc.nullDataTv, tipText, is_data);
@@ -1123,4 +1052,132 @@
         }
 
     }
+
+
+    /**
+     * 涓嬫媺鍒锋柊銆愪綇瀹呫�戠殑閫昏緫
+     */
+    protected void pullToRefreshHome() {
+        viewBinding.fragmentHouseSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+                new AsyncTask<Void, Void, Void>() {
+
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(1000);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        // 鎵ц浠诲姟锛堝鏇存柊UI銆佽烦杞瓑锛�
+                        viewBinding.fragmentHouseSrl.endRefreshing();
+                        //鍔犺浇鏈�鏂版暟鎹畬鎴�
+                        loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
+                        getStatusOverview();
+                    }
+                }.execute();
+
+
+            }
+
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+                new AsyncTask<Void, Void, Void>() {
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(10);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        viewBinding.fragmentHouseSrl.endLoadingMore();
+                        if (!isHouseLoadingMore) {
+                            // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                            loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, ++currentHouseListPage, false);
+                        }
+                    }
+                }.execute();
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.fragmentHouseSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
+
+    /**
+     * 涓嬫媺鍒锋柊銆愯澶囥�戠殑閫昏緫
+     */
+    protected void pullToRefreshDevice() {
+        viewBinding.fragmentDeviceSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
+            @Override
+            public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
+
+                new AsyncTask<Void, Void, Void>() {
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(1000);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        viewBinding.fragmentDeviceSrl.endRefreshing();
+                        loadNextPageDeviceList(true, 1, true);
+                    }
+                }.execute();
+            }
+
+            @Override
+            public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
+                new AsyncTask<Void, Void, Void>() {
+                    @Override
+                    protected Void doInBackground(Void... params) {
+                        try {
+                            Thread.sleep(10);
+                        } catch (InterruptedException e) {
+                            e.printStackTrace();
+                        }
+                        return null;
+                    }
+
+                    @Override
+                    protected void onPostExecute(Void aVoid) {
+                        // 鎵ц浠诲姟锛堝鏇存柊UI銆佽烦杞瓑锛�
+                        viewBinding.fragmentDeviceSrl.endLoadingMore();
+                        if (!isDeviceLoadingMore) {
+                            // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
+                            loadNextPageDeviceList(false, ++currentDeviceListPage, false);
+                        }
+                    }
+                }.execute();
+                return true;
+            }
+        });
+        HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
+        hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
+        hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
+        hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
+        viewBinding.fragmentDeviceSrl.setRefreshViewHolder(hdlRefreshViewHolder);
+    }
+
+
 }
diff --git a/app/src/main/res/layout/fragment_house_list.xml b/app/src/main/res/layout/fragment_house_list.xml
index 0042957..0bdc995 100644
--- a/app/src/main/res/layout/fragment_house_list.xml
+++ b/app/src/main/res/layout/fragment_house_list.xml
@@ -414,11 +414,11 @@
 
         </androidx.constraintlayout.widget.ConstraintLayout>
 
-        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+        <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
             android:id="@+id/fragment_house_srl"
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:layout_marginTop="18.5dp"
+            android:layout_marginTop="10dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -427,8 +427,10 @@
             <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/fragment_house_srl_list_rc"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent" />
-        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+                android:layout_height="match_parent"
+                android:clipToPadding="false"
+                android:paddingBottom="@dimen/dp_10" />
+        </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
         <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
         <include
             android:id="@+id/home_null_data_ic"
@@ -500,7 +502,7 @@
 
         </androidx.constraintlayout.widget.ConstraintLayout>
 
-        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+        <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
             android:id="@+id/fragment_device_srl"
             android:layout_width="match_parent"
             android:layout_height="0dp"
@@ -515,7 +517,7 @@
                 android:layout_height="match_parent"
                 android:clipToPadding="false"
                 android:paddingBottom="@dimen/dp_10" />
-        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+        </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
         <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
         <include
diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml
index f73f310..647f41b 100644
--- a/app/src/main/res/layout/fragment_message.xml
+++ b/app/src/main/res/layout/fragment_message.xml
@@ -53,7 +53,7 @@
     <LinearLayout
         android:id="@+id/message_cl"
         android:layout_width="match_parent"
-        android:layout_height="98dp"
+        android:layout_height="77dp"
         android:layout_marginTop="@dimen/dp_10"
         android:orientation="vertical"
         app:layout_constraintEnd_toEndOf="parent"
@@ -105,8 +105,9 @@
         <LinearLayout
             android:id="@+id/message_tab_ll"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/dp_62"
+            android:layout_height="@dimen/dp_22"
             android:layout_marginStart="@dimen/dp_16"
+            android:layout_marginTop="@dimen/dp_20"
             android:layout_marginEnd="@dimen/dp_16"
             android:orientation="horizontal">
             <!--鍏ㄩ儴璁惧-->
@@ -205,10 +206,11 @@
     </LinearLayout>
 
 
-    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+    <com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout
         android:id="@+id/message_srl"
         android:layout_width="match_parent"
         android:layout_height="0dp"
+        android:layout_marginTop="@dimen/dp_10"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
@@ -222,7 +224,7 @@
             android:id="@+id/message_rcv"
             android:layout_width="match_parent"
             android:layout_height="match_parent" />
-    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+    </com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout>
 
     <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
     <include
diff --git a/app/src/main/res/layout/item_message.xml b/app/src/main/res/layout/item_message.xml
index a31dcc5..dffda21 100644
--- a/app/src/main/res/layout/item_message.xml
+++ b/app/src/main/res/layout/item_message.xml
@@ -5,6 +5,7 @@
     android:layout_height="117.5dp">
 
     <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_marginTop="@dimen/dp_10"
         android:layout_width="0dp"
         android:layout_height="107.5dp"
         android:layout_marginStart="@dimen/dp_16"
diff --git a/app/src/main/res/layout/item_plant_details.xml b/app/src/main/res/layout/item_plant_details.xml
index a0967e9..49f9276 100644
--- a/app/src/main/res/layout/item_plant_details.xml
+++ b/app/src/main/res/layout/item_plant_details.xml
@@ -19,6 +19,7 @@
             android:layout_width="match_parent"
             android:layout_height="194.5dp"
             android:layout_marginStart="@dimen/dp_16"
+            android:layout_marginTop="@dimen/dp_10"
             android:layout_marginEnd="@dimen/dp_16"
             android:background="@drawable/bj_ff1c1c1e">
             <!--鐢电珯鍥剧墖-->

--
Gitblit v1.8.0