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