From 1a5dbd95a4b61c3c94555bc799a1821aa07930e7 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 28 四月 2025 15:27:18 +0800
Subject: [PATCH] 2025年04月28日15:26:37 下拉刷新隐藏加载框

---
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java |  735 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 501 insertions(+), 234 deletions(-)

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 3ac21fd..d5a58ef 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
@@ -1,10 +1,19 @@
 package com.hdl.photovoltaic.ui.powerstation;
 
+import android.Manifest;
+import android.content.Context;
 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.text.TextUtils;
+import android.util.Log;
 import android.view.View;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
@@ -15,38 +24,50 @@
 
 import com.google.gson.Gson;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.bean.PageNumberObject;
 import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
 import com.hdl.photovoltaic.base.CustomBaseFragment;
+import com.hdl.photovoltaic.enums.DebugStatus;
 import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.PowerStationStatus;
 import com.hdl.photovoltaic.enums.ShowErrorMode;
 import com.hdl.photovoltaic.enums.SortType;
 import com.hdl.photovoltaic.enums.SortValue;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.listener.LinkCallBack;
+import com.hdl.photovoltaic.listener.OnCallBeak;
 import com.hdl.photovoltaic.other.HdlCommonLogic;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
+import com.hdl.photovoltaic.other.HdlDialogLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.other.HdlUniLogic;
 import com.hdl.photovoltaic.ui.adapter.DeviceInfoAdapter;
 import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
-import com.hdl.photovoltaic.ui.bean.DeviceBean;
+import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
 import com.hdl.photovoltaic.ui.bean.StatusOverviewBean;
 import com.hdl.photovoltaic.uni.HDLUniMP;
+import com.hdl.photovoltaic.utils.GPSManagerUtils;
 import com.hdl.photovoltaic.utils.PermissionUtils;
+import com.hdl.photovoltaic.utils.URLEncodingUtils;
+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;
+import com.hdl.sdk.link.core.config.HDLLinkConfig;
 import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
+import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
@@ -67,7 +88,7 @@
     private DeviceInfoAdapter deviceInfoAdapter;
 
     private List<HouseIdBean> houseListBeanIDList;
-    private List<DeviceBean> deviceInfoList;
+    private List<CloudInverterDeviceBean> deviceInfoList;
     private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜
     private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮�
     private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
@@ -82,11 +103,22 @@
     private String value = SortValue.all;//descending:闄嶅簭,ascending:鍗囧簭
     private String installedCapacityMinValue = "";//鏈�灏忕粍涓插閲�(瑁呮満瀹归噺)
     private String installedCapacityMaxValue = "";//鏈�澶х粍涓插閲�(瑁呮満瀹归噺)
-    private String gridTypeValue = "";//骞剁綉鐘舵��(鍏ㄩ儴 涓嶄紶璇ヨ繃婊ゅ弬鏁�,FULL_GRID:骞剁綉,OFFLINE:绂荤綉)
+    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;//涓�椤靛ぇ灏�
 
+    /**
+     * 杩樺師鏉′欢鐨勫垵濮嬪寲鐘舵��
+     */
+    private void initializationState() {
+        key = SortValue.all;
+        value = SortValue.all;
+        installedCapacityMinValue = "";
+        installedCapacityMaxValue = "";
+        screeningConditionStatus = DebugStatus.All;
+        powerStationStatusValue = PowerStationStatus.All;
+    }
 
     @Override
     public Object getContentView() {
@@ -96,6 +128,7 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
+//        getStatusOverview();
         initData();
         //鍒濆鍖�
         initView();
@@ -113,17 +146,11 @@
                     return;
                 }
                 isClickPowerStationLabel = true;
-                viewBinding.powerStationLabel.setTextAppearance(R.style.Text20Style);
-                viewBinding.deviceLabel.setTextAppearance(R.style.Text16Style);
-                viewBinding.editIv.setVisibility(View.VISIBLE);//缂栬緫鍥炬爣闅愯棌
-                viewBinding.addIv.setVisibility(View.VISIBLE);//娣诲姞鍥炬爣闅愯棌
-                viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
-                viewBinding.deviceLabelParent.setVisibility(View.GONE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
-                if (viewBinding.deviceNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
-                    viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE);
-                }
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                selectedTitleLabelStyle();
+                initializationState();
                 getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
+
             }
         });
         //璁惧鏍囩
@@ -134,52 +161,60 @@
                     return;
                 }
                 isClickPowerStationLabel = false;
-                viewBinding.deviceLabel.setTextAppearance(R.style.Text20Style);
-                viewBinding.powerStationLabel.setTextAppearance(R.style.Text16Style);
-                viewBinding.editIv.setVisibility(View.GONE);//缂栬緫鍥炬爣闅愯棌
-                viewBinding.addIv.setVisibility(View.GONE);//娣诲姞鍥炬爣闅愯棌
-                viewBinding.powerStationLabelParent.setVisibility(View.GONE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
-                viewBinding.deviceLabelParent.setVisibility(View.VISIBLE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
-                if (viewBinding.homeNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
-                    viewBinding.homeNullDataIc.getRoot().setVisibility(View.GONE);
-                }
+                selectedTitleLabelStyle();
                 loadNextPageDeviceList(true, 1, true);
             }
         });
         //鍏ㄩ儴
-        viewBinding.powerStationAllIl.parentLl.setOnClickListener(new View.OnClickListener() {
+        viewBinding.allLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (powerStationStatusValue.equals(PowerStationStatus.All)) {
+                    return;
+                }
                 powerStationStatusValue = PowerStationStatus.All;
-                selectedStationStyle(viewBinding.powerStationAllIl.parentLl, viewBinding.powerStationAllIl.stationTotalTv, viewBinding.powerStationAllIl.stationTitleTv, true);
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                stationStatusStyle(viewBinding.allLl, viewBinding.allDesTv);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
         });
         //鏁呴殰
-        viewBinding.powerStationFaultsIl.parentLl.setOnClickListener(new View.OnClickListener() {
+        viewBinding.faultsLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (powerStationStatusValue.equals(PowerStationStatus.malfunction)) {
+                    return;
+                }
                 powerStationStatusValue = PowerStationStatus.malfunction;
-                selectedStationStyle(viewBinding.powerStationFaultsIl.parentLl, viewBinding.powerStationFaultsIl.stationTotalTv, viewBinding.powerStationFaultsIl.stationTitleTv, true);
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                stationStatusStyle(viewBinding.faultsLl, viewBinding.faultsDesTv);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
         });
         //绂荤嚎
-        viewBinding.powerStationOfflineIl.parentLl.setOnClickListener(new View.OnClickListener() {
+        viewBinding.offlineLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (powerStationStatusValue.equals(PowerStationStatus.off)) {
+                    return;
+                }
                 powerStationStatusValue = PowerStationStatus.off;
-                selectedStationStyle(viewBinding.powerStationOfflineIl.parentLl, viewBinding.powerStationOfflineIl.stationTotalTv, viewBinding.powerStationOfflineIl.stationTitleTv, true);
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                stationStatusStyle(viewBinding.offlineLl, viewBinding.offlineDesTv);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
         });
         //寰呮帴鍏�
-        viewBinding.powerStationConnectedIl.parentLl.setOnClickListener(new View.OnClickListener() {
+        viewBinding.connectedLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (powerStationStatusValue.equals(PowerStationStatus.connecting)) {
+                    return;
+                }
                 powerStationStatusValue = PowerStationStatus.connecting;
-                selectedStationStyle(viewBinding.powerStationConnectedIl.parentLl, viewBinding.powerStationConnectedIl.stationTotalTv, viewBinding.powerStationConnectedIl.stationTitleTv, true);
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                stationStatusStyle(viewBinding.connectedLl, viewBinding.connectedDesTv);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
         });
 
@@ -187,7 +222,14 @@
         viewBinding.addIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
+
+                requestPermissions(new OnCallBeak() {
+                    @Override
+                    public void onClickCallBeak() {
+//                        UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
+//                        HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
+                    }
+                });
 
             }
         });
@@ -206,50 +248,17 @@
             public void onClick(View v) {
                 DefaultFilteringDialog defaultFilteringDialog = new DefaultFilteringDialog(_mActivity);
                 defaultFilteringDialog.show();
-                defaultFilteringDialog.initState(installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue);
+                defaultFilteringDialog.initState(installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus);
                 defaultFilteringDialog.setOnClickListener(new DefaultFilteringDialog.OnClickListener() {
                     @Override
                     public void confirm(String min, String max, String state) {
                         installedCapacityMinValue = min;//鏈�灏忕粍涓插閲�(瑁呮満瀹归噺)
                         installedCapacityMaxValue = max;//鏈�澶х粍涓插閲�(瑁呮満瀹归噺)
-                        gridTypeValue = state;//骞剁綉鐘舵��(鍏ㄩ儴 涓嶄紶璇ヨ繃婊ゅ弬鏁�,FULL_GRID:骞剁綉,OFFLINE:绂荤綉)
-                        loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                        screeningConditionStatus = state;//璋冭瘯鐘舵��(鍏ㄩ儴;璋冭瘯涓�;璋冭瘯瀹屾垚;宸蹭氦浠�;鎺堟潈璋冭瘯)
+                        getStatusOverview();
+                        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, gridTypeValue, 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, gridTypeValue, powerStationStatusValue, ++currentHouseListPage, false);
-                    }
-                }
             }
         });
         //鐢电珯璇︽儏杩涘叆,鍒犻櫎鐢电珯,绉诲姩鐢电珯浣嶇疆
@@ -257,11 +266,11 @@
             @Override
             public void onClick(int position, HouseIdBean houseIdBean) {
                 //鐐瑰嚮浣忓畢璇︽儏
-                HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏---" + new Gson().toJson(houseIdBean), false);
-                HdlResidenceLogic.getInstance().switchHouse(houseIdBean);
+                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(0);
+                HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
                 String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
                 HdlUniLogic.getInstance().openUniMP(path, null);
-
+                HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏---" + new Gson().toJson(houseIdBean), false);
             }
 
             @Override
@@ -280,7 +289,7 @@
                         //绉诲姩鐢电珯浣嶇疆
                         HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
                         initData();//鍒濆鍖栫紦瀛樻暟鎹�
-                        houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+                        houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
                         nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
                     }
 
@@ -297,10 +306,11 @@
             public void onDelClick(int position, HouseIdBean houseIdBean) {
 
                 DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity);
-                delayedConfirmationCancelDialog.setTitleContent(getString(R.string.loading_title_tip));
+                delayedConfirmationCancelDialog.show();
+                delayedConfirmationCancelDialog.isHideTitle(true);
                 String homeName = "\"" + houseIdBean.getHomeName() + "\"";
                 delayedConfirmationCancelDialog.setContent(getString(R.string.delete_power_station).replace("%s", homeName));
-                delayedConfirmationCancelDialog.show();
+
                 delayedConfirmationCancelDialog.startCountdown(4);
                 delayedConfirmationCancelDialog.setYesOnclickListener(new DelayedConfirmationCancelDialog.onYesOnclickListener() {
                     @Override
@@ -348,35 +358,40 @@
 
             }
         });
-        //鐢电珯缂栬緫鎸夐挳
-        viewBinding.editIv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                startActivity(HouseListEditActivity.class);
-            }
-        });
-        //鐢电珯鍚嶇О绛涢��
+        //PV绛涢��
         viewBinding.stationNameRl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 boolean isSelected = !v.isSelected();
-                viewBinding.stationNameRl.setSelected(isSelected);
-                viewBinding.stationNameIv.setSelected(isSelected);
-                key = SortType.homeNameSort;
+                screeningConditionStyle(viewBinding.stationNameRl, viewBinding.stationNameIv, isSelected);
+                key = SortType.installedCapacitySort;
                 value = isSelected ? SortValue.ascending : SortValue.descending;
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
         });
-        //鐢电珯鍙戠數鍔熺巼绛涢��
+        //棰濆畾鍔熺巼绛涢��
         viewBinding.stationPowerRl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 boolean isSelected = !v.isSelected();
-                viewBinding.stationPowerRl.setSelected(isSelected);
-                viewBinding.stationPowerIv.setSelected(isSelected);
-                key = SortType.powerSort;
+                screeningConditionStyle(viewBinding.stationPowerRl, viewBinding.stationPowerIv, isSelected);
+                key = SortType.invPowerSort;
                 value = isSelected ? SortValue.ascending : SortValue.descending;
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
+            }
+        });
+        //鐢电珯鐢垫睜瀹归噺绛涢��
+        viewBinding.stationMonthRl.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                boolean isSelected = !v.isSelected();
+                screeningConditionStyle(viewBinding.stationMonthRl, viewBinding.stationMonthIv, isSelected);
+                key = SortType.batteryCapacitySort;
+                value = isSelected ? SortValue.ascending : SortValue.descending;
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
         });
         //鐢电珯褰撴棩鍙戠數閲忕瓫閫�
@@ -384,62 +399,65 @@
             @Override
             public void onClick(View v) {
                 boolean isSelected = !v.isSelected();
-                viewBinding.stationDayRl.setSelected(isSelected);
-                viewBinding.stationDayIv.setSelected(isSelected);
+                screeningConditionStyle(viewBinding.stationDayRl, viewBinding.stationDayIv, isSelected);
                 key = SortType.todayElectricitySort;
                 value = isSelected ? SortValue.ascending : SortValue.descending;
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
-            }
-        });
-        //鐢电珯褰撴湀鍙戠數閲忕瓫閫�
-        viewBinding.stationMonthRl.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                boolean isSelected = !v.isSelected();
-                viewBinding.stationMonthRl.setSelected(isSelected);
-                viewBinding.stationMonthIv.setSelected(isSelected);
-                key = SortType.monthElectricitySort;
-                value = isSelected ? SortValue.ascending : SortValue.descending;
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             }
         });
         //璁惧鐐瑰嚮
         deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() {
             @Override
-            public void onClick(int position, DeviceBean deviceBean) {
-
-            }
-        });
-        //璁惧璁剧疆涓嬫媺绠ご棰滆壊
-        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) {
+            public void onClick(int position, CloudInverterDeviceBean deviceBean) {
+//                GatewayBean gatewayBean = new GatewayBean();
+//                gatewayBean.setCategorySecondName(deviceBean.getCategorySecondName());
+//                gatewayBean.setDevice_mac(deviceBean.getOsn());
+//                gatewayBean.setDevice_model(deviceBean.getOmodel());
+//                gatewayBean.setOid(deviceBean.getOid());
+//                gatewayBean.setGatewayId(deviceBean.getGatewayId());
+//                gatewayBean.setAddresses(deviceBean.getAddresses());
+//                gatewayBean.setSid(deviceBean.getSid());
+//                gatewayBean.setDeviceId(deviceBean.getDeviceId());
+//                gatewayBean.setDevice_name(deviceBean.getName());
+//                gatewayBean.setDeviceStatus(deviceBean.getDeviceStatus());
+//                gatewayBean.setHomeId(deviceBean.getHomeId());
+//                gatewayBean.setSpk(deviceBean.getSpk());
+//                gatewayBean.setDeviceType(deviceBean.getDeviceType());
+                if (deviceBean.getDeviceStatus() == 4) {
+                    HdlThreadLogic.toast(_mActivity, R.string.device_off);
                     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);
+                //閰嶇疆鏈湴閫氫俊鐨勪俊鎭�
+                HDLLinkConfig.getInstance().setHomeId(deviceBean.getHomeId());
+                HDLLinkConfig.getInstance().setLocalSecret(deviceBean.getLocalSecret());
+                List<CloudInverterDeviceBean> newList = new ArrayList<>();
+                newList.add(deviceBean);
+                //鐩殑鏄负浜嗚幏鍙栨嬁鍒扮綉鍏矷D锛宮qtt閫氳绉橀挜绛変俊鎭紝鎷垮埌鍚庣紦瀛樺埌鏈湴閫嗗彉鍣ㄥ垪琛ㄩ噷闈紝鍙戦�佹暟鎹暟鎹椂鑷姩鍘荤紦瀛樺垪琛ㄩ噷闈㈠幓鏌ユ壘锛�
+                HdlDeviceLogic.getInstance().setDeviceRemoteInfo(newList, deviceBean.getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
+                    @Override
+                    public void onSuccess(List<GatewayBean> obj) {
+
+                        GatewayBean newGatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(deviceBean.getOsn());
+                        if (newGatewayBean == null) {
+                            HdlThreadLogic.toast(_mActivity, getString(R.string.device_off));
+                            return;
+                        }
+                        if (TextUtils.isEmpty(newGatewayBean.getGatewayId()) || TextUtils.isEmpty(newGatewayBean.getAesKey())) {
+                            //杩欓噷鍙敮鎸佽繙绋嬭皟璇曪紝杩滅▼鎷夸笉鍒癿qtt閫氳绉橀挜浠ュ強gatewayId锛�
+                            HdlThreadLogic.toast(_mActivity, getString(R.string.Device_failed_to_certificate) + "(124004)");
+                            return;
+                        }
+                        String jsonEncryption = URLEncodingUtils.encodeURIComponent(new Gson().toJson(newGatewayBean));
+                        String path = HDLUniMP.UNI_EVENT_OPEN_DEVICE_DETAILS + "?inverterInfo=" + jsonEncryption;
+                        HdlUniLogic.getInstance().openUniMP(path, null);
                     }
-                }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+
+                    }
+                });
             }
         });
         //璁惧鎼滅储
@@ -454,65 +472,101 @@
 
     }
 
+
+    /**
+     * 鏇存柊绛涢�夌數绔欑姸鎬佹牱寮�
+     *
+     * @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 screeningConditionStyle(RelativeLayout relativeLayout, ImageView imageView, boolean isSelected) {
+        viewBinding.stationNameRl.setSelected(false);
+        viewBinding.stationNameIv.setSelected(false);
+        viewBinding.stationPowerRl.setSelected(false);
+        viewBinding.stationPowerIv.setSelected(false);
+        viewBinding.stationDayRl.setSelected(false);
+        viewBinding.stationDayIv.setSelected(false);
+        viewBinding.stationMonthRl.setSelected(false);
+        viewBinding.stationMonthIv.setSelected(false);
+        relativeLayout.setSelected(isSelected);
+        imageView.setSelected(isSelected);
+    }
+
+
     private void initView() {
         viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
         viewBinding.deviceLabelParent.setVisibility(View.GONE);
 
-        viewBinding.powerStationAllIl.stationTitleTv.setText(getString(R.string.message_all));
-        viewBinding.powerStationFaultsIl.stationTitleTv.setText(getString(R.string.my_power_station_malfunction));
-        viewBinding.powerStationOfflineIl.stationTitleTv.setText(getString(R.string.my_power_station_off_line));
-        viewBinding.powerStationConnectedIl.stationTitleTv.setText(getString(R.string.to_be_added));
-
-        selectedStationStyle(viewBinding.powerStationAllIl.parentLl, viewBinding.powerStationAllIl.stationTotalTv, viewBinding.powerStationAllIl.stationTitleTv, true);
+        stationStatusStyle(viewBinding.allLl, viewBinding.allDesTv);
         //鐢电珯鏍囩
         houseInfoAdapter = new HouseInfoAdapter(_mActivity);
         viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter);
-        houseInfoAdapter.setList(this.houseListBeanIDList);
+        houseInfoAdapter.setList(this.houseListBeanIDList, powerStationStatusValue);
 
         //璁惧鏍囩
         deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
         viewBinding.fragmentDeviceSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.fragmentDeviceSrlListRc.setAdapter(deviceInfoAdapter);
-        this.nullDataUpdateUi();
-
+        //
+//        this.nullDataUpdateUi();
+        //涓嬫媺鍒锋柊浣忓畢鐨勯�昏緫
+        pullToRefreshHome();
+        //涓嬫媺鍒锋柊璁惧鐨勯�昏緫
+        pullToRefreshDevice();
 
     }
 
     /**
-     * 鏄剧ず閫変腑鐘舵�佹牱寮�
-     *
-     * @param linearLayout         缁勪欢
-     * @param numberTv             缁勪欢
-     * @param titleTv              缁勪欢
-     * @param isShowSelectedStatus 鏄惁鏄剧ず鐘舵�佹牱寮�
+     * 鐢电珯鍜岃澶囨爣绛炬牱寮�
      */
-    private void selectedStationStyle(LinearLayout linearLayout, TextView numberTv, TextView titleTv, boolean isShowSelectedStatus) {
-        viewBinding.powerStationAllIl.parentLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-        viewBinding.powerStationFaultsIl.parentLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-        viewBinding.powerStationOfflineIl.parentLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-        viewBinding.powerStationConnectedIl.parentLl.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.station_status_no_ffffff));
-
-        viewBinding.powerStationAllIl.stationTotalTv.setTextColor(getResources().getColor(R.color.text_E6000000, null));
-        viewBinding.powerStationAllIl.stationTitleTv.setTextColor(getResources().getColor(R.color.text_66000000, null));
-
-        viewBinding.powerStationFaultsIl.stationTotalTv.setTextColor(getResources().getColor(R.color.text_E6000000, null));
-        viewBinding.powerStationFaultsIl.stationTitleTv.setTextColor(getResources().getColor(R.color.text_66000000, null));
-
-        viewBinding.powerStationOfflineIl.stationTotalTv.setTextColor(getResources().getColor(R.color.text_E6000000, null));
-        viewBinding.powerStationOfflineIl.stationTitleTv.setTextColor(getResources().getColor(R.color.text_66000000, null));
-
-        viewBinding.powerStationConnectedIl.stationTotalTv.setTextColor(getResources().getColor(R.color.text_E6000000, null));
-        viewBinding.powerStationConnectedIl.stationTitleTv.setTextColor(getResources().getColor(R.color.text_66000000, null));
-
-
-        if (isShowSelectedStatus) {
-            linearLayout.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.selected_8_38c494));
-            numberTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null));
-            titleTv.setTextColor(getResources().getColor(R.color.text_FFFFFFFF, null));
+    private void selectedTitleLabelStyle() {
+        if (isClickPowerStationLabel) {
+            viewBinding.powerStationLabel.setTextAppearance(R.style.Text18Style);
+            viewBinding.deviceLabel.setTextAppearance(R.style.Text14Style);
+//            viewBinding.editIv.setVisibility(View.VISIBLE);//缂栬緫鍥炬爣闅愯棌
+            viewBinding.addIv.setVisibility(View.VISIBLE);//娣诲姞鍥炬爣闅愯棌
+            viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
+            viewBinding.deviceLabelParent.setVisibility(View.GONE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
+            if (viewBinding.deviceNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
+                viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE);
+            }
+        } else {
+            viewBinding.deviceLabel.setTextAppearance(R.style.Text18Style);
+            viewBinding.powerStationLabel.setTextAppearance(R.style.Text14Style);
+//            viewBinding.editIv.setVisibility(View.GONE);//缂栬緫鍥炬爣闅愯棌
+            viewBinding.addIv.setVisibility(View.GONE);//娣诲姞鍥炬爣闅愯棌
+            viewBinding.powerStationLabelParent.setVisibility(View.GONE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
+            viewBinding.deviceLabelParent.setVisibility(View.VISIBLE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
+            if (viewBinding.homeNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
+                viewBinding.homeNullDataIc.getRoot().setVisibility(View.GONE);
+            }
         }
 
     }
+
 
     private void initData() {
         if (isClickPowerStationLabel) {
@@ -539,12 +593,12 @@
                 // 鍙栨秷绮樻�т簨浠�
                 EventBus.getDefault().removeStickyEvent(eventBus);
                 //uin鍒涘缓鐢电珯鎴愬姛鍚庨�氱煡
-                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                 if (eventBus.getData() != null) {
                     Gson gson = new Gson();
                     String json = eventBus.getData().toString();
                     HouseIdBean houseIdBean = gson.fromJson(json, HouseIdBean.class);
-                    HdlResidenceLogic.getInstance().switchHouse(houseIdBean);
+                    HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
 
                 }
             } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT.equals(eventBus.getType())) {
@@ -573,52 +627,88 @@
 //                    }
 //                }
 
-
             }
-        } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE.equals(eventBus.getType())) {
+        } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE.equals(eventBus.getTopic())) {
             // 鍙栨秷绮樻�т簨浠�
             EventBus.getDefault().removeStickyEvent(eventBus);
-            //uin鍏抽棴浣忓畢璇︽儏鐣岄潰閫氱煡
-            if (MqttRecvClient.getInstance() != null) {
-                MqttRecvClient.getInstance().removeAllTopic();
-            }
-            loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+            //鏄湪锛堢數绔欙級妯″潡涓斿湪锛堢數绔欙級鏍囩椤垫墠杩涙潵杩欓噷
+            if (HdlCommonLogic.lowerTagType == LowerTagType.power_station && isClickPowerStationLabel) {
+//                //uin鍏抽棴浣忓畢璇︽儏鐣岄潰閫氱煡
+//                if (MqttRecvClient.getInstance() != null) {
+//                    MqttRecvClient.getInstance().removeAllTopic();
+//                }
 
+                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
+            }
         } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) {
             // 鍙栨秷绮樻�т簨浠�
             EventBus.getDefault().removeStickyEvent(eventBus);
+//            if (!isClickPowerStationLabel) {
+//                return;
+//            }
+            //鍏堟竻绌鸿闃呬富棰�
+            if (MqttRecvClient.getInstance() != null) {
+                MqttRecvClient.getInstance().removeAllTopic();
+            }
+            String homeId = eventBus.getData().toString();
             //杩涘幓浣忓畢璇︽儏uni璇诲彇閫嗗彉鍣ㄥ垪琛ㄦ垚鍔熷悗閫氱煡
-            for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()).size(); i++) {
-                String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()).get(i).getGatewayId();
+            for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId, null).size(); i++) {
+                String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId, null).get(i).getGatewayId();
                 //瀛楃涓叉槸鑷繁鎸夎鍒欐嫾鎺ョ殑,閲岄潰娉ㄥ唽涓婚鏃朵細瑙f瀽瀛楃涓�,鍙嬁getGatewayId()鍊�;
                 String topic = "/user/" + gatewayId + "/#";
                 //杩涘幓浣忓畢璇︽儏寮�濮嬭闃呬富棰�
-                MqttRecvClient.getInstance().checkAndsubscribeAllTopics(topic);
+                MqttRecvClient.getInstance().checkAndsubscribeAllTopics(topic);//璁㈤槄銆愰�嗗彉鍣ㄣ�戞秷鎭�
             }
+            String topicHome = "/user/" + homeId + "/#";
+            MqttRecvClient.getInstance().checkAndsubscribeAllTopics(topicHome);//璁㈤槄銆愮數绔欍�戞秷鎭�
+
+
         } else if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
+            // 鍙栨秷绮樻�т簨浠�
+            EventBus.getDefault().removeStickyEvent(eventBus);
             //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
             if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) {
+                HdlLogLogic.print("姝e湪鐐瑰嚮銆愮數绔欍��");
+//                if (!isReadData) {
+//                    //1锛屼粠棣栭〉-鏁呴殰-杩涙潵-鐢电珯锛堜笉璇诲彇锛�
+//                    //2锛屼粠鐢电珯-杩涙潵-鐢电珯锛堣鍙栦竴娆�,鍚庨潰杩涙潵涓嶅湪璇诲彇锛�
+//                    loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+//                    getStatusOverview();
+//                }
+                //2024骞�06鏈�24鏃�14:34:01 浜у搧缁忕悊瑕佹眰杩涘幓鐢电珯鍒楄〃閮借璇诲彇 涓旈粯璁よ繘鍘婚兘鏄粯璁ょ數绔欐爣绛�
+                isClickPowerStationLabel = true;
+                selectedTitleLabelStyle();
+                initializationState();
+                stationStatusStyle(viewBinding.allLl, viewBinding.allDesTv);
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
+            } else if (eventBus.getType().equals(ConstantManage.station_page)) {
                 // 鍙栨秷绮樻�т簨浠�
                 EventBus.getDefault().removeStickyEvent(eventBus);
-                HdlLogLogic.print("姝e湪鐐瑰嚮銆愮數绔欍��");
-                if (!isReadData) {
-                    //1锛屼粠棣栭〉-鏁呴殰-杩涙潵-鐢电珯锛堜笉璇诲彇锛�
-                    //1锛屼粠鐢电珯-杩涙潵-鐢电珯锛堣鍙栦竴娆�,鍚庨潰杩涙潵涓嶅湪璇诲彇锛�
-                    loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
-                    getStatusOverview();
+                isClickPowerStationLabel = true;
+                selectedTitleLabelStyle();
+                powerStationStatusValue = eventBus.getData() == null ? "" : eventBus.getData().toString();
+                //閫氳繃棣栭〉鐢电珯杩涙潵鐨�
+                if (eventBus.getData().equals(PowerStationStatus.All)) {
+                    stationStatusStyle(viewBinding.allLl, viewBinding.allDesTv);
+                } else if (eventBus.getData().equals(PowerStationStatus.malfunction)) {
+                    stationStatusStyle(viewBinding.faultsLl, viewBinding.faultsDesTv);
+                } else if (eventBus.getData().equals(PowerStationStatus.off)) {
+                    stationStatusStyle(viewBinding.offlineLl, viewBinding.offlineDesTv);
+                } else if (eventBus.getData().equals(PowerStationStatus.connecting)) {
+                    stationStatusStyle(viewBinding.connectedLl, viewBinding.connectedDesTv);
                 }
-            } else if (eventBus.getType().equals(PowerStationStatus.All)) {
-                viewBinding.powerStationAllIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.malfunction)) {
-                viewBinding.powerStationFaultsIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.off)) {
-                viewBinding.powerStationOfflineIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.connecting)) {
-                viewBinding.powerStationConnectedIl.parentLl.performClick();
+                getStatusOverview();
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
             } else if (eventBus.getType().equals(ConstantManage.station_edit)) {
-                //鏇存柊涓�涓嬩綇瀹�
-                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                //缂栬緫鍚庢洿鏂颁竴涓嬩綇瀹呭垪琛�
+                //loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
 //                getStatusOverview();
+                if (houseInfoAdapter != null) {
+                    initData();
+                    //鏇存柊UI
+                    houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);
+                }
             }
         }
     }
@@ -628,16 +718,16 @@
      * 鐢电珯鐘舵�佹瑙�
      */
     private void getStatusOverview() {
-        HdlResidenceLogic.getInstance().getStatusOverview(new CloudCallBeak<StatusOverviewBean>() {
+        HdlResidenceLogic.getInstance().getStatusOverview(screeningConditionStatus, installedCapacityMinValue, installedCapacityMaxValue, new CloudCallBeak<StatusOverviewBean>() {
             @Override
             public void onSuccess(StatusOverviewBean statusOverviewBean) {
                 if (statusOverviewBean == null) {
                     return;
                 }
-                viewBinding.powerStationAllIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal()));
-                viewBinding.powerStationFaultsIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault()));
-                viewBinding.powerStationOfflineIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline()));
-                viewBinding.powerStationConnectedIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting()));
+                viewBinding.allTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal()));
+                viewBinding.faultsTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault()));
+                viewBinding.offlineTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline()));
+                viewBinding.connectedTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting()));
             }
 
             @Override
@@ -651,15 +741,16 @@
     /**
      * 鍒锋柊UI锛堢數绔欙級
      *
-     * @param isRefreshing         琛ㄧず鏄笅鎷夊埛鏂扮殑
+     * @param isRefreshing         鏄惁鏄剧ず鍔犺浇妗嗭紙true鏄剧ず锛宖alse涓嶆樉绀猴級
      * @param key                  鍙戠數鍔熺巼鎺掑簭(powerSort);
      *                             浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort);
      *                             鍒涘缓鏃堕棿鎺掑簭(createTimeSort);
+     *                             鐢垫睜瀹归噺鎺掑簭(batteryCapacitySort);
      * @param keyValue             (descending:闄嶅簭
      *                             ascending:鍗囧簭),
      * @param installedCapacityMin 鏈�灏忕粍涓插閲�(瑁呮満瀹归噺)
      * @param installedCapacityMax 鏈�澶х粍涓插閲�(瑁呮満瀹归噺)
-     * @param gridType             骞剁綉鐘舵�� (鍏ㄩ儴 锛�"";FULL_GRID 锛� 骞剁綉;OFFLINE 锛氱缃�)
+     * @param gridType             璋冭瘯鐘舵��(鍏ㄩ儴;璋冭瘯涓�;璋冭瘯瀹屾垚;宸蹭氦浠�;鎺堟潈璋冭瘯)
      * @param powerStationStatus   鐢电珯鐘舵�� (鍏ㄩ儴  锛�"";1 锛� 姝e父;2 锛� 绂荤嚎; 3 锛� 寰呮帴鍏�;4 锛� 鏁呴殰)
      * @param pageNo               椤电爜
      * @param isClear              鏄惁娓呴櫎鏁版嵁
@@ -677,7 +768,7 @@
         }
         isHouseLoadingMore = true;//鏍囪璇诲彇鐘舵��
         if (isRefreshing) {
-            showLoading();
+            showLoading(getString(R.string.device_loading));
         }
 
         //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
@@ -699,7 +790,7 @@
                             if (houseInfoAdapter != null) {
                                 initData();
                                 //鏇存柊UI
-                                houseInfoAdapter.setList(houseListBeanIDList);
+                                houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);
                             }
                         }
                         nullDataUpdateUi();
@@ -720,7 +811,7 @@
                         if (isRefreshing) {
                             hideLoading();
                         }
-
+                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
                     }
                 }, _mActivity, ShowErrorMode.YES);
             }
@@ -730,7 +821,7 @@
     /**
      * 鍒锋柊UI锛堣澶囷級
      *
-     * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
+     * @param isRefreshing 鏄惁鏄剧ず鍔犺浇妗嗭紙true鏄剧ず锛宖alse涓嶆樉绀猴級
      * @param pageNo       椤电爜
      * @param isClear      true琛ㄧず娓呯┖缂撳瓨
      */
@@ -746,12 +837,12 @@
         }
         isDeviceLoadingMore = true;//鏍囪璇诲彇鐘舵��
         if (isRefreshing) {
-            showLoading();
+            showLoading(getString(R.string.device_loading));
         }
         //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
-        HdlDeviceLogic.getInstance().getPowerStationDeviceList("", pageNo, pageSize, new CloudCallBeak<PageNumberObject<DeviceBean>>() {
+        HdlDeviceLogic.getInstance().getPowerStationDeviceList("", pageNo, pageSize, new CloudCallBeak<PageNumberObject<CloudInverterDeviceBean>>() {
             @Override
-            public void onSuccess(PageNumberObject<DeviceBean> pageNumberObject) {
+            public void onSuccess(PageNumberObject<CloudInverterDeviceBean> pageNumberObject) {
                 HdlThreadLogic.runMainThread(new Runnable() {
                     @Override
                     public void run() {
@@ -789,6 +880,7 @@
                         if (isRefreshing) {
                             hideLoading();
                         }
+                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
                     }
                 }, _mActivity, ShowErrorMode.YES);
             }
@@ -825,12 +917,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);
@@ -880,7 +972,8 @@
                 initializeInverter(list); //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;锛堟敞鎰�:鍙兘鏄湰鍦板彂閫佷簡(瑕佹悳绱㈠眬鍩熺綉閫嗗彉鍣ㄥ垪琛紝寤虹珛鏈湴閫氳閫氶亾),鍒犻櫎鐢电珯鎴愬姛鍚�,浜戠瑙g粦閫嗗彉鍣ㄧ殑鍏崇郴锛�
                 HdlResidenceLogic.getInstance().delHouseId(homeId);//鍒犻櫎鐢电珯缂撳瓨
                 initData();//鍒濆鍖栫紦瀛樻暟鎹�
-                houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+                houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
+                getStatusOverview();//鍒犻櫎鎴愬姛鍚庡埛鏂扮數绔欑姸鎬佹瑙�
                 nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
             }
 
@@ -899,13 +992,18 @@
         if (requestCode == PermissionUtils.STATUS_SUCCESS) {
             for (int i = 0; i < permissions.length; i++) {
                 if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
-                    if (mPermissionsResultCallback != null) {
-                        mPermissionsResultCallback.succeed();
+                    switch (permissions[i]) {
+                        case Manifest.permission.ACCESS_FINE_LOCATION: {
+                            UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
+                            HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
+                            locationUpdates();
+                        }
+                        break;
                     }
+
                 } else {
-                    if (mPermissionsResultCallback != null) {
-                        mPermissionsResultCallback.failing();
-                    }
+                    HdlDialogLogic.getInstance().showSettingPermissionDialog(_mActivity, _mActivity.getString(R.string.set_location_permissions));
+                    break;
                 }
 
             }
@@ -913,16 +1011,185 @@
 
     }
 
+    public void requestPermissions(OnCallBeak onCallBeak) {
 
-    private PermissionsResultCallback mPermissionsResultCallback;
+        //ACCESS_FINE_LOCATION	鍏佽浣跨敤GPS瀹氫綅
+        //ACCESS_COARSE_LOCATION	鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣�
+        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION});
+        if (ary.length > 0) {
+            this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
+        } else {
 
-    public interface PermissionsResultCallback {
+            UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
+            HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
+            locationUpdates();
 
-        void succeed();
 
-        void failing();
+        }
 
     }
 
+    /**
+     * 鍒濆鍖栥�愬紑鍚畾浣嶃�戝拰銆愪綅缃俊鎭�戞潈闄�
+     */
+    private void locationUpdates() {
+        // 鍒濆鍖朙ocationManager瀵硅薄
+        LocationManager locationManager = (LocationManager) _mActivity.getSystemService(Context.LOCATION_SERVICE);
+        GPSManagerUtils.getInstance().getLocation(_mActivity);
+        // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘
+        if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
+            // 鎻愮ず鐢ㄦ埛鎵撳紑瀹氫綅鍔熻兘鎴栬�呭紩瀵肩敤鎴峰幓绯荤粺璁剧疆椤甸潰鎵撳紑瀹氫綅鍔熻兘
+            ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity);
+            confirmationCancelDialog.setContent(getString(R.string.system_positioning_switch));
+            confirmationCancelDialog.setConfirmation(getString(R.string.go_to_settings));
+            confirmationCancelDialog.show();
+            confirmationCancelDialog.isHideTitle(true);
+            confirmationCancelDialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+                @Override
+                public void Confirm() {
+                    confirmationCancelDialog.dismiss();
+                    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                    HDLApp.getInstance().startActivity(intent);
+
+                }
+            });
+            confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
+                @Override
+                public void Cancel() {
+                    confirmationCancelDialog.dismiss();
+                }
+            });
+
+        }
+
+    }
+
+
+    /**
+     * 涓嬫媺鍒锋柊銆愪綇瀹呫�戠殑閫昏緫
+     */
+    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(false, 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(false, 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);
+    }
+
 
 }

--
Gitblit v1.8.0