From fcad47d04eee15a9c1c9e5a27314163c201c3c26 Mon Sep 17 00:00:00 2001
From: 刘卫锦 <lwj@hdlchina.com.cn>
Date: 星期二, 27 六月 2023 11:04:06 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.23:6688/r/~wjc/HDLPhotovoltaicDebugAPP

---
 /dev/null                                                                     |   17 -
 app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java               |    1 
 app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java                  |    7 
 app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java           |    9 
 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java           |  270 ++++++++++++++++++++++++++-
 app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java         |   42 ++++
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java                            |    6 
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java                 |   75 ++++++
 app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java              |   82 ++-----
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java |   43 +++
 app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseInfoBean.java             |   43 ---
 11 files changed, 459 insertions(+), 136 deletions(-)

diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index d549df4..0000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="deploymentTargetDropDown">
-    <runningDeviceTargetSelectedWithDropDown>
-      <Target>
-        <type value="RUNNING_DEVICE_TARGET" />
-        <deviceKey>
-          <Key>
-            <type value="SERIAL_NUMBER" />
-            <value value="2ffc9a07" />
-          </Key>
-        </deviceKey>
-      </Target>
-    </runningDeviceTargetSelectedWithDropDown>
-    <timeTargetWasSelectedWithDropDown value="2023-06-26T02:32:08.398530Z" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index e3cf84d..6ee13bb 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -1,12 +1,17 @@
 package com.hdl.photovoltaic;
 
+import android.Manifest;
 import android.app.Application;
+import android.content.pm.PackageManager;
 
+
+import androidx.annotation.NonNull;
 
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
+import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.photovoltaic.utils.SharedPreUtils;
 
 import java.util.HashMap;
@@ -94,4 +99,5 @@
     }
 
 
+
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java b/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
index d45942c..b260bc2 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/UserConfigManage.java
@@ -7,6 +7,7 @@
 import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
+import com.hdl.photovoltaic.ui.bean.HouseInfoBean;
 import com.hdl.photovoltaic.ui.bean.HouseListBean;
 
 import java.util.ArrayList;
@@ -159,18 +160,18 @@
     /**
      * 褰撳墠浣忓畢
      */
-    private HouseListBean m_Home = null;
+    private HouseInfoBean m_Home = null;
 
     /**
      * 褰撳墠浣忓畢
      */
-    public HouseListBean home() {
+    public HouseInfoBean home() {
         if (m_Home != null) {
             return m_Home;
         }
-        m_Home = HdlResidenceLogic.getInstance().getHouseByHouseId(homeId);
+        m_Home = HdlResidenceLogic.getInstance().getHouse(homeId);
         if (m_Home == null) {
-            m_Home = new HouseListBean();
+            m_Home = new HouseInfoBean();
         }
         return m_Home;
     }
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java b/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
index d8fce79..2e66b6f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
@@ -86,7 +86,6 @@
             @Override
             public void run() {
                 try {
-
                     HdlLogLogic.print("http->鍙戦��->", fullUrl + "\r\n" + json);
                     OkHttpClient okHttpClient = new OkHttpClient();
                     RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), getJson(json));
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
index af96ffb..6b2f341 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -1,5 +1,9 @@
 package com.hdl.photovoltaic.other;
 
+import android.os.SystemClock;
+import android.text.TextUtils;
+import android.util.Log;
+
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import com.hdl.photovoltaic.bean.HttpResponsePack;
@@ -11,13 +15,19 @@
 import com.hdl.photovoltaic.ui.bean.HouseInfoBean;
 import com.hdl.photovoltaic.ui.bean.HouseListBean;
 
+import org.w3c.dom.Text;
+
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * 浣忓畢閫昏緫鐣岄潰
  */
 public class HdlResidenceLogic {
+
+    public static final int pageSize = 50;
 
     private static volatile HdlResidenceLogic sHdlResidenceLogic;
 
@@ -59,24 +69,93 @@
     //浣忓畢璇︽儏鍒楄〃
     private List<HouseInfoBean> houseInfoList = new ArrayList<>();
 
-    public HouseListBean getHouseByHouseId(String homeId) {
-        return new HouseListBean();
-    }
 
+    /**
+     * 鑾峰彇浣忓畢鍒楄〃
+     *
+     * @param cloudCallBeak -
+     */
+    public void getHouseList(CloudCallBeak<Boolean> cloudCallBeak) {
+        //鑾峰彇浣忓畢鍒楄〃
+        getResidenceList("", "", new CloudCallBeak<List<HouseListBean>>() {
+            @Override
+            public void onSuccess(List<HouseListBean> houseListBeanList) {
+                if (houseListBeanList != null && houseListBeanList.size() > 0) {
+                    houseList.clear();
+                    houseList.addAll(houseListBeanList);
+                    //鏍囪鏈�鍚庝竴鏉�
+                    AtomicInteger atomicInteger = new AtomicInteger(0);
+                    for (int i = 0; i < houseList.size(); i++) {
+                        HouseListBean houseListBean = houseList.get(i);
+                        atomicInteger.set(i);
+                        //鑾峰彇浣忓畢璇︽儏鍒楄〃
+                        getResidenceInfo(houseListBean.getHomeId(), new CloudCallBeak<HouseInfoBean>() {
+                            @Override
+                            public void onSuccess(HouseInfoBean houseInfoBean) {
+                                if (houseInfoBean != null) {
+                                    houseInfoBean.setHomeImage(houseListBean.getHomeImage());//鐢电珯鍥剧墖
+                                    houseInfoBean.setInstalledCapacity(houseListBean.getInstalledCapacity());//瑁呮満瀹归噺
+                                    houseInfoBean.setPower(houseListBean.getPower());//鍙戠數鍔熺巼
+                                    houseInfoBean.setTodayElectricity(houseListBean.getTodayElectricity());//浠婂ぉ鍙戠數閲�
+                                    houseInfoBean.setPowerStationStatus(houseListBean.getPowerStationStatus());//鐢电珯鐘舵��(鐢电珯鐘舵��	1:姝e父(杩愯),2:绂荤嚎,3:杩炴帴涓�,4:鏁呴殰)
+                                    //娣诲姞鍒版湰鍦扮紦瀛�
+                                    addHouseToLocalMemory(houseInfoBean);
+                                }
+                                if (atomicInteger.get() == houseList.size() - 1) {
+                                    //鏈�鍚庝竴鏉¢��鍑�
+                                    if (cloudCallBeak != null) {
+                                        cloudCallBeak.onSuccess(true);
+                                    }
+                                }
+
+                            }
+
+                            @Override
+                            public void onFailure(Exception exception) {
+                                if (atomicInteger.get() == houseList.size() - 1) {
+                                    if (cloudCallBeak != null) {
+                                        cloudCallBeak.onFailure(exception);
+                                    }
+                                }
+                            }
+                        });
+
+                    }
+                } else {
+                    if (cloudCallBeak != null) {
+                        cloudCallBeak.onSuccess(true);
+                    }
+                }
+            }
+
+            @Override
+            public void onFailure(Exception exception) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(exception);
+                }
+            }
+        });
+
+    }
 
     /**
      * 鑾峰彇浣忓畢(鐢电珯)鍒楄〃
      *
-     * @param pageNo   褰撳墠椤垫暟
-     * @param pageSize 涓�椤靛ぇ灏�
+     * @param pageNo   褰撳墠椤垫暟 寮�濮嬮粯璁�1
+     * @param pageSize 涓�椤靛ぇ灏� 寮�濮嬮粯璁�50
+     * @param key      鍙戠數鍔熺巼鎺掑簭(powerSort);浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort);鍒涘缓鏃堕棿鎺掑簭(createTimeSort);
+     * @param keyValue (descending:闄嶅簭ascending:鍗囧簭),
      */
-    public void getResidenceList(int pageNo, int pageSize, CloudCallBeak<Boolean> cloudCallBeak) {
+    public void getResidenceList(int pageNo, int pageSize, String key, String keyValue, CloudCallBeak<Boolean> cloudCallBeak) {
         if (pageNo == 1) {
             //绗竴娆¤繘鏉ユ竻绌哄垪琛�
             houseList.clear();
         }
         String requestUrl = HttpApi.POST_PowerStation_List;
         JsonObject json = new JsonObject();
+        if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(keyValue)) {
+            json.addProperty(key, keyValue);//鍙戠數鍔熺巼鎺掑簭(descending:闄嶅簭ascending:鍗囧簭)
+        }
 //        json.addProperty("powerSort", "descending");//鍙戠數鍔熺巼鎺掑簭(descending:闄嶅簭ascending:鍗囧簭)
 //        json.addProperty("todayElectricitySort", "descending");//浠婃棩鍙戠數閲忔帓搴�
 //        json.addProperty("createTimeSort", "descending");//鍒涘缓鏃堕棿鎺掑簭
@@ -91,6 +170,7 @@
                     Gson gson = new Gson();
                     String jsonStr = gson.toJson(httpResponsePack.getData());
                     HouseInfoBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseInfoBeanClass.class);
+                    //娣诲姞銆愪綇瀹呫�戝埌鏈湴缂撳瓨
                     houseList.addAll(houseInfoBeanClass.getList());
                     //鎬诲叡鏈夊灏戦〉
                     long totalPage = houseInfoBeanClass.totalPage;
@@ -100,7 +180,14 @@
                         }
                         return;
                     }
-                    getResidenceList(pageNo + 1, 100, cloudCallBeak);
+                    if (pageNo > totalPage) {
+                        //褰撳墠璇锋眰鐨勯〉鏁板ぇ浜庢�婚〉鏁�,浜戠鍑洪敊浜嗙珛鍗宠繑鍥炲幓;
+                        if (cloudCallBeak != null) {
+                            cloudCallBeak.onSuccess(true);
+                        }
+                        return;
+                    }
+                    getResidenceList(pageNo + 1, pageSize, key, keyValue, cloudCallBeak);
 
                 }
             }
@@ -115,6 +202,87 @@
         });
     }
 
+
+    public void getResidenceList(String key, String keyValue, CloudCallBeak<List<HouseListBean>> cloudCallBeak) {
+
+        String requestUrl = HttpApi.POST_PowerStation_List;
+        JsonObject json = new JsonObject();
+        if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(keyValue)) {
+            json.addProperty(key, keyValue);//鍙戠數鍔熺巼鎺掑簭(descending:闄嶅簭ascending:鍗囧簭)
+        }
+//        json.addProperty("powerSort", "descending");//鍙戠數鍔熺巼鎺掑簭(descending:闄嶅簭ascending:鍗囧簭)
+//        json.addProperty("todayElectricitySort", "descending");//浠婃棩鍙戠數閲忔帓搴�
+//        json.addProperty("createTimeSort", "descending");//鍒涘缓鏃堕棿鎺掑簭
+//        json.addProperty("zoneType", "password");//鍖哄煙
+        json.addProperty("pageNo", 1);//椤电爜
+        json.addProperty("pageSize", pageSize);//椤垫暟
+        List<HouseListBean> list = new ArrayList<>();
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
+            @Override
+            public void onSuccess(HttpResponsePack httpResponsePack) {
+                if (httpResponsePack != null && httpResponsePack.getData() != null) {
+                    Gson gson = new Gson();
+                    String jsonStr = gson.toJson(httpResponsePack.getData());
+                    HouseInfoBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseInfoBeanClass.class);
+                    list.addAll(houseInfoBeanClass.getList());
+                    //鎬诲叡鏈夊灏戦〉
+                    long totalPage = houseInfoBeanClass.totalPage;
+                    if (totalPage < 2) {
+                        if (cloudCallBeak != null) {
+                            cloudCallBeak.onSuccess(list);
+                        }
+                        return;
+                    }
+                    //鏍囪鏈�鍚庝竴鏉�
+                    AtomicBoolean isLast = new AtomicBoolean(false);
+                    //浠庣浜岄〉鑾峰彇鏁版嵁
+                    for (int i = 2; i <= totalPage; i++) {
+                        if (totalPage == i) {
+                            isLast.set(true);
+                        }
+                        json.addProperty("pageNo", i);//鏇存柊椤电爜
+                        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), true, true, new BaseSuccessFailureCallBeak() {
+                            @Override
+                            public void onSuccess(HttpResponsePack httpResponsePack) {
+                                Gson gson = new Gson();
+                                String jsonStr = gson.toJson(httpResponsePack.getData());
+                                HouseInfoBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseInfoBeanClass.class);
+                                list.addAll(houseInfoBeanClass.getList());
+                                if (isLast.get()) {
+                                    if (cloudCallBeak != null) {
+                                        cloudCallBeak.onSuccess(list);
+                                    }
+                                }
+                            }
+
+                            @Override
+                            public void onFailure(Exception exception) {
+                                if (isLast.get()) {
+                                    if (cloudCallBeak != null) {
+                                        cloudCallBeak.onSuccess(list);
+                                    }
+                                }
+                            }
+                        });
+                    }
+
+                } else {
+                    if (cloudCallBeak != null) {
+                        cloudCallBeak.onSuccess(list);
+                    }
+                }
+            }
+
+            @Override
+            public void onFailure(Exception exception) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(exception);
+                }
+            }
+        });
+
+
+    }
 
     /**
      * 鑾峰彇浣忓畢(鐢电珯)璇︽儏
@@ -134,6 +302,7 @@
                     Gson gson = new Gson();
                     String jsonStr = gson.toJson(httpResponsePack.getData());
                     HouseInfoBean houseInfoBean = gson.fromJson(jsonStr, HouseInfoBean.class);
+
                     if (cloudCallBeak != null) {
                         cloudCallBeak.onSuccess(houseInfoBean);
                     }
@@ -153,7 +322,7 @@
 
 
     /**
-     * 缂栬緫浣忓畢(鐢电珯)
+     * 缂栬緫浣忓畢(鐢电珯),
      *
      * @param houseInfoBean -
      * @param cloudCallBeak -
@@ -232,12 +401,12 @@
     }
 
     /**
-     * 娣诲姞浣忓畢(鐢电珯)
+     * 娣诲姞浣忓畢(鐢电珯)鍒颁簯绔�
      *
      * @param houseInfoBean -
      * @param cloudCallBeak -
      */
-    public void addResidence(HouseInfoBean houseInfoBean, CloudCallBeak<Boolean> cloudCallBeak) {
+    public void addHouseToCloud(HouseInfoBean houseInfoBean, CloudCallBeak<Boolean> cloudCallBeak) {
         String requestUrl = HttpApi.POST_PowerStation_Create;
         JsonObject json = new JsonObject();
         JsonObject location = new JsonObject();
@@ -282,6 +451,87 @@
 
     }
 
+    /**
+     * 鍒囨崲浣忓畢
+     *
+     * @param homeId 浣忓畢id
+     */
+    public Boolean switchHouse(String homeId) {
+        UserConfigManage.getInstance().setHomeId(homeId);
+        HdlThreadLogic.runThread(new Runnable() {
+            @Override
+            public void run() {
+                //鎼滅储涓�涓嬩綇瀹呰澶�
+            }
+        }, null, null);
+
+        //鍏抽棴杩涘害鏉�
+
+        return true;
+    }
+
+
+    /**
+     * 娣诲姞銆愪綇瀹呰鎯呫�戝埌鏈湴缂撳瓨
+     *
+     * @param houseInfoBean 浣忓畢璇︽儏
+     */
+    public void addHouseToLocalMemory(HouseInfoBean houseInfoBean) {
+        if (houseInfoBean == null) {
+            return;
+        }
+        int index = isExistHouse(houseInfoBean.getHomeId());
+        if (index > -1) {
+            houseInfoList.remove(index);
+            houseInfoList.add(index, houseInfoBean);
+        } else {
+            houseInfoList.add(houseInfoBean);
+        }
+    }
+
+    /**
+     * 鏌ヨ鏈湴缂撳瓨浣忓畢鍒楄〃鏄惁瀛樺湪浣忓畢
+     *
+     * @param homeId 浣忓畢id
+     * @return 鍒楄〃绱㈠紩
+     */
+    public int isExistHouse(String homeId) {
+        int index = -1;
+        for (int i = 0; i < houseInfoList.size(); i++) {
+            if (houseInfoList.get(i).getHomeId().equals(homeId)) {
+                index = i;
+                break;
+            }
+        }
+        return index;
+    }
+
+    /**
+     * 鑾峰彇浣忓畢璇︽儏
+     *
+     * @param homeId 浣忓畢id
+     * @return 浣忓畢鎵句笉鍒拌繑鍥瀗ull
+     */
+    public HouseInfoBean getHouse(String homeId) {
+        int position = isExistHouse(homeId);
+        if (position > -1) {
+            return houseInfoList.get(position);
+        }
+        return null;
+    }
+
+    /**
+     * 鍒犻櫎浣忓畢
+     *
+     * @param homeId 浣忓畢id
+     */
+    public void delHouse(String homeId) {
+        int position = isExistHouse(homeId);
+        if (position > -1) {
+            houseInfoList.remove(position);
+        }
+    }
+
 
     static class HouseInfoBeanClass {
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 245bdbc..e9f9b18 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -1,10 +1,14 @@
 package com.hdl.photovoltaic.other;
 
 
+import android.text.TextUtils;
+
 import com.google.gson.Gson;
+import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
+import com.hdl.photovoltaic.utils.WifiUtils;
 
 import org.json.JSONObject;
 
@@ -44,19 +48,74 @@
      */
     @Override
     public void onOtherUniMPEventReceive(String appId, String event, Object data, DCUniMPJSCallback callback) {
-        if (!HDLUniMP.UNI_APP_ID.equals(appId)) {
-            return;
-        }
         try {
-            org.json.JSONObject jsonObject = null;
-            if (data != null) {
-                jsonObject = new org.json.JSONObject(data.toString());
+            if (!HDLUniMP.UNI_APP_ID.equals(appId)) {
+                return;
             }
-            //浣忓畢妯″潡
-            if (HDLUniMP.UNI_EVENT_REPLY_HOME_LIST.equals(event)) {
+            String json = data == null ? "{}" : data.toString();
+            json = json.equals("") ? "{}" : json;
+            org.json.JSONObject jsonObject = new org.json.JSONObject(json);
+            String type_value = "";
+            if (jsonObject.has("type")) {
+                type_value = jsonObject.getString("type");
+            }
+
+            if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(event)) {
+                //浣忓畢妯″潡
+                switch (type_value) {
+                    case HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION: {
+                        //鍒涘缓
+                        HdlResidenceLogic.getInstance().getResidenceList(1, 100, "", "", null);
+
+                    }
+                    break;
+                    case HDLUniMP.UNI_EVENT_REPLY_HOME_DETAILS: {
+                        //璇︽儏
+                    }
+                    break;
+
+                }
                 if (callback != null) {
                     uniCallbackData(null, "0", "", callback);
                 }
+            } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(event)) {
+                //璁惧妯″潡
+                switch (type_value) {
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: {
+                        //娣诲姞
+                    }
+                    break;
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST: {
+                        //鑾峰彇璁惧鍒楄〃
+                    }
+                    break;
+
+                }
+
+            } else if (HDLUniMP.UNI_EVENT_REPLY_WIFI_MODEL.equals(event)) {
+                WifiUtils wifiUtils = new WifiUtils(HDLApp.getInstance());
+                //wifi妯″潡
+                switch (type_value) {
+                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_LIST: {
+                        //鑾峰彇wifi鍒楄〃
+                        if (callback != null) {
+                            uniCallbackData(wifiUtils.getScanResult(), "0", "", callback);
+                        }
+                    }
+                    break;
+                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_INFO: {
+                        //褰撳墠wifi璇︽儏
+                        if (callback != null) {
+                            uniCallbackData(wifiUtils.getCurrentConnectWifiInfo(), "0", "", callback);
+                        }
+                    }
+                    break;
+                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_CONNECT: {
+                        //wifi杩炴帴
+                    }
+                    break;
+
+                }
             }
             HdlLogLogic.print("uni===鍘熺敓鎺ユ敹uni鍙戞潵鐨勬暟鎹�", event + "\r\n" + data);
         } catch (Exception e) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
index adf4e9f..569a9a9 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
@@ -20,6 +20,9 @@
 import androidx.annotation.NonNull;
 import androidx.appcompat.content.res.AppCompatResources;
 
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
 import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseActivity;
@@ -33,6 +36,7 @@
 import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.ui.device.FastScanActivity;
+import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.photovoltaic.utils.WifiUtils;
 
@@ -198,27 +202,21 @@
                         HdlAccountLogic.getInstance().loginByPassword(account, password, new CloudCallBeak<LoginUserBean>() {
                             @Override
                             public void onSuccess(LoginUserBean obj) {
-                                HdlThreadLogic.runMainThread(new Runnable() {
+                                HdlResidenceLogic.getInstance().getResidenceList(1,50,"","",new CloudCallBeak<Boolean>() {
                                     @Override
-                                    public void run() {
-                                        HdlResidenceLogic.getInstance().getResidenceList(1, 100, new CloudCallBeak<Boolean>() {
-                                            @Override
-                                            public void onSuccess(Boolean obj) {
-                                                hideLoading();
-                                                restoreButtonStyleToInitializeState();
-                                                startActivity(MyPowerStationActivity.class);
-                                            }
-
-                                            @Override
-                                            public void onFailure(Exception exception) {
-                                                hideLoading();
-                                                restoreButtonStyleToInitializeState();
-                                                startActivity(MyPowerStationActivity.class);
-                                            }
-                                        });
+                                    public void onSuccess(Boolean obj) {
+                                        hideLoading();
+                                        restoreButtonStyleToInitializeState();
+                                        startActivity(MyPowerStationActivity.class);
                                     }
-                                }, null, null);
 
+                                    @Override
+                                    public void onFailure(Exception exception) {
+                                        hideLoading();
+                                        restoreButtonStyleToInitializeState();
+                                        startActivity(MyPowerStationActivity.class);
+                                    }
+                                });
                             }
 
                             @Override
@@ -243,12 +241,6 @@
             public void onClick(View v) {
 //                requestPermissions();
 //                startActivity(MyPowerStationActivity.class);
-                HdlThreadLogic.runMainThread(new Runnable() {
-                    @Override
-                    public void run() {
-                        int s = 1 / 0;
-                    }
-                }, _mActivity, ShowErrorMode.YES);
             }
         });
 
@@ -298,10 +290,15 @@
      * 鎭㈠缁勪欢鏍峰紡鍒板垵濮嬪寲鐘舵��
      */
     private void restoreButtonStyleToInitializeState() {
-        viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_E1E1E1));
-        viewBinding.homeLoginAccountTextErrorTv.setText("");
-        viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1));
-        viewBinding.homeLoginPasswordTextErrorTv.setText("");
+        HdlThreadLogic.runMainThread(new Runnable() {
+            @Override
+            public void run() {
+                viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_E1E1E1));
+                viewBinding.homeLoginAccountTextErrorTv.setText("");
+                viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1));
+                viewBinding.homeLoginPasswordTextErrorTv.setText("");
+            }
+        }, null, null);
     }
 
     /**
@@ -319,33 +316,4 @@
     }
 
 
-    private void requestPermissions() {
-        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION});
-        if (ary.length > 0) {
-            requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
-        } else {
-            wifi();
-        }
-    }
-
-    @Override
-    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-        if (requestCode == PermissionUtils.STATUS_SUCCESS) {
-            for (int i = 0; i < permissions.length; i++) {
-                if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
-                    wifi();
-                }
-
-            }
-        }
-
-    }
-
-    public void wifi() {
-        WifiUtils wifiUtils = new WifiUtils(HDLApp.getInstance());
-//        wifiUtils.getCurrentConnectWifiInfo();
-//        wifiUtils.getScanResult();
-        wifiUtils.connectWiFi("Application", "12345678", 3);
-    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
index 4f6568f..84a148a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/MyPowerStationActivity.java
@@ -81,5 +81,47 @@
         }
     }
 
+    public void requestPermissions() {
+        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION});
+        if (ary.length > 0) {
+            requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
+        } else {
+            if (mPermissionsResultCallback != null) {
+                mPermissionsResultCallback.succeed();
+            }
+        }
+    }
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+        if (requestCode == PermissionUtils.STATUS_SUCCESS) {
+            for (int i = 0; i < permissions.length; i++) {
+                if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
+                    if (mPermissionsResultCallback != null) {
+                        mPermissionsResultCallback.succeed();
+                    }
+                }
+
+            }
+        }
+
+    }
+
+
+    private PermissionsResultCallback mPermissionsResultCallback;
+
+    public void setPermissionsResultCallback(PermissionsResultCallback permissionsResultCallback) {
+        mPermissionsResultCallback = permissionsResultCallback;
+    }
+
+    public interface PermissionsResultCallback {
+
+        void succeed();
+
+        void failing();
+
+    }
+
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
index 84e87e7..da99726 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
@@ -1,11 +1,15 @@
 package com.hdl.photovoltaic.ui;
 
+import androidx.annotation.NonNull;
 import androidx.appcompat.app.AppCompatActivity;
 
+import android.Manifest;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.os.Bundle;
 
 import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.utils.PermissionUtils;
 
 public class StartActivity extends AppCompatActivity {
 
@@ -21,4 +25,7 @@
 
 
     }
+
+
+
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseInfoBean.java b/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseInfoBean.java
index 891580d..0cef03c 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseInfoBean.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseInfoBean.java
@@ -1,31 +1,20 @@
 package com.hdl.photovoltaic.ui.bean;
 
-public class HouseInfoBean {
-    private String homeId;//鐢电珯id
+public class HouseInfoBean extends HouseListBean {
     private Location location;//鐢电珯鍦板潃
     private String address;//璇︾粏鍦板潃
     private String latitude;//绾害
     private String longitude;//缁忓害
-    private String homeName;//鐢电珯鍚嶇О
     private String timezone;//鏃跺尯
-    private int powerStationType;//鐢电珯绫诲瀷(DOMESTIC_ROOF:瀹剁敤灞嬮《,COMMERCIAL_ROOF:鍟嗕笟鐢ㄥ眿椤�,INDUSTRIAL_ROOF:宸ヤ笟鐢ㄥ眿椤�,SURFACE_POWER_STATION:鍦伴潰鐢电珯)
-    private int workMode;//宸ヤ綔妯″紡(self_use:鑷彂鑷敤,peak_load_shifting:鍓婂嘲濉胺,battery_priority:鐢垫睜浼樺厛,auto:鏅鸿兘妯″紡)
-    private String installedCapacity;//瑁呮満瀹归噺
+    private String powerStationType;//鐢电珯绫诲瀷(DOMESTIC_ROOF:瀹剁敤灞嬮《,COMMERCIAL_ROOF:鍟嗕笟鐢ㄥ眿椤�,INDUSTRIAL_ROOF:宸ヤ笟鐢ㄥ眿椤�,SURFACE_POWER_STATION:鍦伴潰鐢电珯)
+    private String workMode;//宸ヤ綔妯″紡(self_use:鑷彂鑷敤,peak_load_shifting:鍓婂嘲濉胺,battery_priority:鐢垫睜浼樺厛,auto:鏅鸿兘妯″紡)
     private long productionTime;//鎶曚骇鏃ュ織
     private String monetaryUnit;//璐у竵鍗曚綅
     private String electrovalence;//鐢典环
     private String totalCost;//鎬绘垚鏈�
 
-
     private String zoneType;//鍖哄煙
 
-    public String getHomeId() {
-        return homeId == null ? "" : homeId;
-    }
-
-    public void setHomeId(String homeId) {
-        this.homeId = homeId;
-    }
 
     public Location getLocation() {
         return location == null ? new Location() : location;
@@ -59,13 +48,6 @@
         this.longitude = longitude;
     }
 
-    public String getHomeName() {
-        return homeName == null ? "" : homeName;
-    }
-
-    public void setHomeName(String homeName) {
-        this.homeName = homeName;
-    }
 
     public String getTimezone() {
         return timezone == null ? "" : timezone;
@@ -75,29 +57,22 @@
         this.timezone = timezone;
     }
 
-    public int getPowerStationType() {
-        return powerStationType;
+    public String getPowerStationType() {
+        return powerStationType == null ? "" : powerStationType;
     }
 
-    public void setPowerStationType(int powerStationType) {
+    public void setPowerStationType(String powerStationType) {
         this.powerStationType = powerStationType;
     }
 
-    public int getWorkMode() {
-        return workMode;
+    public String getWorkMode() {
+        return workMode == null ? "" : workMode;
     }
 
-    public void setWorkMode(int workMode) {
+    public void setWorkMode(String workMode) {
         this.workMode = workMode;
     }
 
-    public String getInstalledCapacity() {
-        return installedCapacity == null ? "" : installedCapacity;
-    }
-
-    public void setInstalledCapacity(String installedCapacity) {
-        this.installedCapacity = installedCapacity;
-    }
 
     public long getProductionTime() {
         return productionTime;
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
index 9373411..dee2bc7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -24,6 +24,7 @@
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.other.HdlUniLogic;
+import com.hdl.photovoltaic.ui.MyPowerStationActivity;
 import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
 import com.hdl.photovoltaic.ui.bean.HouseListBean;
 import com.hdl.photovoltaic.ui.device.FastScanActivity;
@@ -72,8 +73,21 @@
         viewBinding.toolbarTopFragmentHouseListRl.topMoreIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+
                 // 鎵撳紑灏忕▼搴忛〉闈�
-                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
+//                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
+                requestPermissions(new PermissionsResultCallback() {
+                    @Override
+                    public void succeed() {
+                        // 鎵撳紑灏忕▼搴忛〉闈�
+                        HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
+                    }
+
+                    @Override
+                    public void failing() {
+                    }
+                });
+
             }
         });
         //璁剧疆涓嬫媺绠ご棰滆壊
@@ -128,12 +142,19 @@
     /**
      * 鐢宠鏉冮檺
      */
-    private void requestPermissions() {
-        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.CAMERA});
+    private void requestPermissions(PermissionsResultCallback permissionsResultCallback) {
+        mPermissionsResultCallback = permissionsResultCallback;
+        //Manifest.permission.CAMERA,
+        String[] s = new String[]{
+                Manifest.permission.ACCESS_FINE_LOCATION
+        };
+        String[] ary = PermissionUtils.checkPermission(_mActivity, s);
         if (ary.length > 0) {
             requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
         } else {
-            startActivity(FastScanActivity.class);
+            if (mPermissionsResultCallback != null) {
+                mPermissionsResultCallback.succeed();
+            }
         }
     }
 
@@ -143,7 +164,9 @@
         if (requestCode == PermissionUtils.STATUS_SUCCESS) {
             for (int i = 0; i < permissions.length; i++) {
                 if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
-                    startActivity(FastScanActivity.class);
+                    if (mPermissionsResultCallback != null) {
+                        mPermissionsResultCallback.succeed();
+                    }
                 }
 
             }
@@ -151,4 +174,14 @@
 
     }
 
+    private PermissionsResultCallback mPermissionsResultCallback;
+
+    public interface PermissionsResultCallback {
+
+        void succeed();
+
+        void failing();
+
+    }
+
 }

--
Gitblit v1.8.0