From bcdd75fb55b4c887e10b660a31538bf15bfd1c82 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 31 七月 2025 13:17:36 +0800
Subject: [PATCH] 2025年07月31日13:17:34
---
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java | 28 +++++++++
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java | 46 +++++++-------
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java | 53 ++++++++++++++++-
3 files changed, 98 insertions(+), 29 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
index f4b38e3..b21f7ed 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -12,6 +12,7 @@
import com.google.gson.Gson;
+import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.home.type.HomeType;
@@ -25,6 +26,7 @@
import com.hdl.photovoltaic.databinding.ActivityCpowerStationBinding;
import com.hdl.photovoltaic.enums.NetworkType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlESLocalJsonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -259,16 +261,20 @@
String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C;
HdlUniLogic.getInstance().openUniMP(path, null);
} else {
- //瑙e喅闂鎵嬫満娌℃湁缃戣嚜鍔ㄧ櫥褰曡繘鏉ワ紝榛樿浼犱笂涓�娆$殑浣忓畢id
+ //1锛岃В鍐虫墜鏈烘病鏈夊缃戯紝鑾峰彇涓嶅埌鐢电珯鍒楄〃锛岃嚜鍔ㄧ櫥褰曡繘鏉ワ紝榛樿浼犱笂涓�娆$殑浣忓畢id锛�
+ //2锛屼箣鍓嶇數绔欏垪琛ㄥ彧鏈変竴涓數绔欙紝鐒跺悗鍒犻櫎鎺夌數绔欙紝杩欐椂浣忓畢id杩樼紦瀛樼潃锛屽啀涓�娆¤繘鏉ワ紝榛樿浼犱笂涓�娆$殑浣忓畢id锛�
String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C + "?homeId=" + UserConfigManage.getInstance().getHomeId() + "&homeName=" + UserConfigManage.getInstance().getHomeName();
HdlUniLogic.getInstance().openUniMP(path, null);
}
} else {
+
int select_home = 0;
- for (int i = 0; i < HouseIdList.size(); i++) {
- if (HouseIdList.get(i).getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
- select_home = i;
- break;
+ if (!TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {//鏈湴缂撳瓨浣忓畢id涓嶄负绌哄啀閬嶅巻鏌ユ壘
+ for (int i = 0; i < HouseIdList.size(); i++) {
+ if (HouseIdList.get(i).getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
+ select_home = i;
+ break;
+ }
}
}
HouseIdBean houseIdBean = HouseIdList.get(select_home);
@@ -494,6 +500,43 @@
// HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
// HdlDeviceLogic.getInstance().searchAllNetworkGateway(null);//閫嗗彉鍣╳ifi鐘舵��-閲嶆柊鎼滅储涓�涓嬮�嗗彉鍣�-閲嶆柊鏇存柊杩炴帴鐘舵��
+ } else if (linkResponse.getTopic().endsWith("/app/thing/event/appHomeRefresh/up")) {
+ try {
+ //浣忓畢浜や粯鐘舵�佸洖婊氶�氱煡
+ String[] topicArray = linkResponse.getTopic().split("/");
+ if (topicArray.length < 2) {
+ return;
+ }
+ final String HomeId = topicArray[1];
+ //鍏堝垹闄ょ數绔�
+ HdlResidenceLogic.getInstance().delHouseId(HomeId);
+ List<HouseIdBean> localHouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
+ if (localHouseIdList.isEmpty()) {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("homeId", "");
+ HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
+ uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS);
+ uniCallBackBaseBean.setData(jsonObject);
+ HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
+ } else {
+ if (HomeId.equals(UserConfigManage.getInstance().getHomeId()) || TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
+ HouseIdBean houseIdBean = localHouseIdList.get(0);
+ HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("homeId", houseIdBean.getHomeId());
+ jsonObject.addProperty("homeName", houseIdBean.getHomeName());
+ jsonObject.addProperty("powerStationStatus", houseIdBean.getPowerStationStatus() + "");
+ HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
+ uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS);
+ uniCallBackBaseBean.setData(jsonObject);
+ HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
+ }
+ }
+ } catch (Exception e) {
+ }
+ //閫氱煡鐢电珯鍒楄〃鏇存柊
+ HdlCommonLogic.getInstance().postEventBus(ConstantManage.REFRESH_HOME_LIST, ConstantManage.REFRESH_HOME_LIST);
+ HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
}
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java
index 1c17dc3..8268619 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java
@@ -7,6 +7,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
+import android.text.TextUtils;
import android.view.View;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -73,6 +74,8 @@
getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
//鍒濆鍖栨暟鎹�
initData();
+ //璁剧疆褰撳墠鐢电珯閫変腑鐘舵��
+ setSelectState();
//鍒濆鍖�
initView();
//鍒濆鍖栫晫闈㈢洃鍚櫒
@@ -81,10 +84,13 @@
// downReadData(false);
}
+ /**
+ * 鍒濆鍖栫數绔欏垪琛ㄦ暟鎹�
+ */
private void initData() {
this.houseListBeanIDList = new ArrayList<>();
this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
- setSelectState();
+// setSelectState();
}
private void initEvent() {
@@ -149,14 +155,14 @@
@Override
public void onSuccess(List<GatewayBean> list) {
//鍙戣捣鍒犻櫎鐢电珯鎸囦护
- deleteResidence(houseIdBean.getHomeId(), list);
+ deleteResidence(position, houseIdBean, list);
}
@Override
public void onFailure(HDLException e) {
//鍙戣捣鍒犻櫎鐢电珯鎸囦护
- deleteResidence(houseIdBean.getHomeId(), null);
+ deleteResidence(position, houseIdBean, null);
}
});
@@ -283,7 +289,7 @@
if (houseListAdapter != null) {
//閲嶆柊鑾峰彇鍒楄〃鏁版嵁
initData();
- refreshDetails();
+ refreshDetails("");
//鏇存柊鐢电珯閫変腑鐘舵��
setSelectState();
//鏇存柊鍒楄〃鏁版嵁
@@ -405,23 +411,25 @@
/**
* 鍒犻櫎鐢电珯
*
- * @param homeId 鐢电珯id
- * @param list 閫嗗彉鍣ㄥ垪琛�
+ * @param position 绱㈠紩鍊�
+ * @param houseIdBean 鐢电珯id瀵硅薄
+ * @param list 閫嗗彉鍣ㄥ垪琛�
*/
- private void deleteResidence(String homeId, List<GatewayBean> list) {
+ private void deleteResidence(final int position, final HouseIdBean houseIdBean, List<GatewayBean> list) {
//鍒犻櫎浣忓畢
- HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
+ HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
@Override
public void onSuccess(Boolean obj) {
hideLoading();
initializeInverter(list); //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;锛堟敞鎰�:鍓嶉潰宸插厛瑙g粦浜戠閫嗗彉鍣紝mqtt閫氶亾宸叉柇寮�锛屽垵濮嬪寲鍙兘鏄湰鍦板彂閫�(鍏堟悳绱㈠眬鍩熺綉閫嗗彉鍣ㄥ垪琛紝寤虹珛鏈湴閫氳閫氶亾)锛�
- HdlResidenceLogic.getInstance().delHouseId(homeId);//鍒犻櫎鐢电珯缂撳瓨
+ HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());//鍒犻櫎鐢电珯缂撳瓨
initData();//鍒濆鍖栫紦瀛樻暟鎹�
- refreshDetails();
- //鏇存柊鐢电珯閫変腑鐘舵��
- setSelectState();
- houseListAdapter.setList(houseListBeanIDList); //鏇存柊鍒楄〃鏁版嵁
+ refreshDetails(houseIdBean.getHomeId());
+ setSelectState();//鏇存柊鐢电珯閫変腑鐘舵��
+ if (houseListAdapter != null) {
+ houseListAdapter.setList(houseListBeanIDList); //鏇存柊鍒楄〃鏁版嵁
+ }
nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
}
@@ -524,7 +532,7 @@
* 閫氱煡uni鏇存柊鏁版嵁
* 锛堝湪骞冲彴涓婂垹闄绔綋鍓嶄綇瀹呭悗,鑾峰彇鍒楄〃瀹炴敹瑕侀�氱煡uni閭h竟鏇存柊鐣岄潰鍗$墖锛�
*/
- private void refreshDetails() {
+ private void refreshDetails(final String homeId) {
try {
List<HouseIdBean> localHouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
if (localHouseIdList.isEmpty()) {
@@ -535,15 +543,7 @@
uniCallBackBaseBean.setData(jsonObject);
HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
} else {
- int select_home = -1;
- for (int i = 0; i < localHouseIdList.size(); i++) {
- if (localHouseIdList.get(i).getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
- select_home = i;
- break;
- }
- }
- if (select_home == -1) {
- //鎵句笉鍒伴粯璁ょ涓�涓�
+ if (homeId.equals(UserConfigManage.getInstance().getHomeId()) || TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
HouseIdBean houseIdBean = localHouseIdList.get(0);
HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
JsonObject jsonObject = new JsonObject();
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java
index 04da689..ee1fdab 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java
@@ -15,14 +15,20 @@
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.databinding.ActivityPowerStationsMoveBinding;
import com.hdl.photovoltaic.enums.ShowErrorMode;
+import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlResidenceLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.ui.newC.adapter.HouseMoveAdapter;
+import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
+import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
@@ -61,6 +67,7 @@
this.houseListBeanIDList = new ArrayList<>();
this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
}
+
/**
* 涓嬫媺鍒锋柊鐨勯�昏緫
@@ -137,7 +144,9 @@
//绉诲姩鐢电珯浣嶇疆
HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
initData();//鍒濆鍖栫紦瀛樻暟鎹�
- houseMoveAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+ if (houseMoveAdapter != null) {
+ houseMoveAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+ }
nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
//閫氱煡澶栭潰鏇存柊浣嶇疆
HdlCommonLogic.getInstance().postEventBus(ConstantManage.REFRESH_HOME_LIST, ConstantManage.REFRESH_HOME_LIST);
@@ -238,5 +247,22 @@
super.onDestroy();
}
+ /**
+ * 鏀跺埌EventBUs閫氱煡
+ *
+ * @param eventBus 鏁版嵁
+ */
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onEventMessage(BaseEventBus eventBus) {
+ super.onEventMessage(eventBus);
+ if (ConstantManage.REFRESH_HOME_LIST.equals(eventBus.getTopic())) {
+ if (houseMoveAdapter != null) {
+ initData();
+ houseMoveAdapter.setList(houseListBeanIDList);
+ }
+ nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
+ }
+ }
+
}
\ No newline at end of file
--
Gitblit v1.8.0