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