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 |  640 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 416 insertions(+), 224 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 e505902..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,12 +24,14 @@
 
 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;
@@ -29,8 +40,10 @@
 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;
@@ -41,10 +54,14 @@
 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;
@@ -86,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() {
@@ -100,7 +128,7 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
-        getStatusOverview();
+//        getStatusOverview();
         initData();
         //鍒濆鍖�
         initView();
@@ -119,8 +147,9 @@
                 }
                 isClickPowerStationLabel = true;
                 selectedTitleLabelStyle();
+                initializationState();
                 getStatusOverview();
-                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
 
             }
         });
@@ -137,39 +166,55 @@
             }
         });
         //鍏ㄩ儴
-        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;
-                selectedStationStateStyle(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;
-                selectedStationStateStyle(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;
-                selectedStationStateStyle(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;
-                selectedStationStateStyle(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);
             }
         });
 
@@ -177,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);
+                    }
+                });
 
             }
         });
@@ -196,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);
-                    }
-                }
             }
         });
         //鐢电珯璇︽儏杩涘叆,鍒犻櫎鐢电珯,绉诲姩鐢电珯浣嶇疆
@@ -247,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
@@ -339,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);
             }
         });
         //鐢电珯褰撴棩鍙戠數閲忕瓫閫�
@@ -375,23 +399,11 @@
             @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);
             }
         });
         //璁惧鐐瑰嚮
@@ -425,7 +437,17 @@
                 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);
@@ -436,38 +458,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);
-                    }
-                }
             }
         });
         //璁惧鎼滅储
@@ -482,16 +472,54 @@
 
     }
 
+
+    /**
+     * 鏇存柊绛涢�夌數绔欑姸鎬佹牱寮�
+     *
+     * @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));
-
-        selectedStationStateStyle(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));
@@ -502,8 +530,12 @@
         deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
         viewBinding.fragmentDeviceSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.fragmentDeviceSrlListRc.setAdapter(deviceInfoAdapter);
-        this.nullDataUpdateUi();
-
+        //
+//        this.nullDataUpdateUi();
+        //涓嬫媺鍒锋柊浣忓畢鐨勯�昏緫
+        pullToRefreshHome();
+        //涓嬫媺鍒锋柊璁惧鐨勯�昏緫
+        pullToRefreshDevice();
 
     }
 
@@ -512,9 +544,9 @@
      */
     private void selectedTitleLabelStyle() {
         if (isClickPowerStationLabel) {
-            viewBinding.powerStationLabel.setTextAppearance(R.style.Text20Style);
-            viewBinding.deviceLabel.setTextAppearance(R.style.Text16Style);
-            viewBinding.editIv.setVisibility(View.VISIBLE);//缂栬緫鍥炬爣闅愯棌
+            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);//璁惧鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
@@ -522,9 +554,9 @@
                 viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE);
             }
         } else {
-            viewBinding.deviceLabel.setTextAppearance(R.style.Text20Style);
-            viewBinding.powerStationLabel.setTextAppearance(R.style.Text16Style);
-            viewBinding.editIv.setVisibility(View.GONE);//缂栬緫鍥炬爣闅愯棌
+            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);//璁惧鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
@@ -535,40 +567,6 @@
 
     }
 
-    /**
-     * 鏄剧ず閫変腑鐘舵�佹牱寮�
-     *
-     * @param linearLayout         缁勪欢
-     * @param numberTv             缁勪欢
-     * @param titleTv              缁勪欢
-     * @param isShowSelectedStatus 鏄惁鏄剧ず鐘舵�佹牱寮�
-     */
-    private void selectedStationStateStyle(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 initData() {
         if (isClickPowerStationLabel) {
@@ -595,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())) {
@@ -629,18 +627,18 @@
 //                    }
 //                }
 
-
             }
-        } 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);
-            //鏄湪鐢电珯鍒楄〃椤垫墠杩涙潵杩欓噷
+            //鏄湪锛堢數绔欙級妯″潡涓斿湪锛堢數绔欙級鏍囩椤垫墠杩涙潵杩欓噷
             if (HdlCommonLogic.lowerTagType == LowerTagType.power_station && isClickPowerStationLabel) {
-                //uin鍏抽棴浣忓畢璇︽儏鐣岄潰閫氱煡
-                if (MqttRecvClient.getInstance() != null) {
-                    MqttRecvClient.getInstance().removeAllTopic();
-                }
-                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+//                //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())) {
             // 鍙栨秷绮樻�т簨浠�
@@ -648,42 +646,60 @@
 //            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锛屼粠棣栭〉-鏁呴殰-杩涙潵-鐢电珯锛堜笉璇诲彇锛�
-                    //2锛屼粠鐢电珯-杩涙潵-鐢电珯锛堣鍙栦竴娆�,鍚庨潰杩涙潵涓嶅湪璇诲彇锛�
-                    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)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                viewBinding.powerStationAllIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.malfunction)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                viewBinding.powerStationFaultsIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.off)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                viewBinding.powerStationOfflineIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.connecting)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                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);
@@ -702,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
@@ -725,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              鏄惁娓呴櫎鏁版嵁
@@ -794,7 +811,7 @@
                         if (isRefreshing) {
                             hideLoading();
                         }
-
+                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
                     }
                 }, _mActivity, ShowErrorMode.YES);
             }
@@ -804,7 +821,7 @@
     /**
      * 鍒锋柊UI锛堣澶囷級
      *
-     * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑
+     * @param isRefreshing 鏄惁鏄剧ず鍔犺浇妗嗭紙true鏄剧ず锛宖alse涓嶆樉绀猴級
      * @param pageNo       椤电爜
      * @param isClear      true琛ㄧず娓呯┖缂撳瓨
      */
@@ -863,6 +880,7 @@
                         if (isRefreshing) {
                             hideLoading();
                         }
+                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
                     }
                 }, _mActivity, ShowErrorMode.YES);
             }
@@ -899,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);
@@ -974,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;
                 }
 
             }
@@ -988,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