From 7e79979359bf5d3438afac05458e454c4786d50b Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 30 五月 2024 10:57:54 +0800
Subject: [PATCH] 2024年05月30日10:57:47
---
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java | 113 ++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 84 insertions(+), 29 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 61965cc..d470d94 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
@@ -22,6 +22,7 @@
import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+import com.hdl.photovoltaic.enums.LowerTagType;
import com.hdl.photovoltaic.enums.PowerStationStatus;
import com.hdl.photovoltaic.enums.ShowErrorMode;
import com.hdl.photovoltaic.enums.SortType;
@@ -36,17 +37,19 @@
import com.hdl.photovoltaic.other.HdlUniLogic;
import com.hdl.photovoltaic.ui.adapter.DeviceInfoAdapter;
import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
-import com.hdl.photovoltaic.ui.bean.DeviceBean;
+import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean;
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.PermissionUtils;
+import com.hdl.photovoltaic.utils.URLEncodingUtils;
import com.hdl.photovoltaic.widget.DefaultFilteringDialog;
import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog;
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;
import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
+import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -59,15 +62,15 @@
* 鐢电珯鍜岃澶�-鐣岄潰
*/
public class HouseAndDeviceFragment extends CustomBaseFragment {
+
+ private boolean isReadData = false;
private FragmentHouseListBinding viewBinding;
private HouseInfoAdapter houseInfoAdapter;
private DeviceInfoAdapter deviceInfoAdapter;
private List<HouseIdBean> houseListBeanIDList;
- private List<DeviceBean> deviceInfoList;
-
-
+ private List<CloudInverterDeviceBean> deviceInfoList;
private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜
private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮�
private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁
@@ -96,9 +99,7 @@
@Override
public void onBindView(Bundle savedInstanceState) {
- //鏀惧湪杩欓噷涔熷锛岃繖閲屽彧鏄鍒涘缓涓�娆�
-// loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
-// getStatusOverview();
+ getStatusOverview();
initData();
//鍒濆鍖�
initView();
@@ -126,6 +127,7 @@
viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE);
}
loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+ getStatusOverview();
}
});
//璁惧鏍囩
@@ -229,6 +231,7 @@
public void onRefresh() {
viewBinding.fragmentHouseSrl.setRefreshing(false);
loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+ getStatusOverview();
}
});
//鐢电珯涓婃媺璇诲彇
@@ -281,7 +284,7 @@
//绉诲姩鐢电珯浣嶇疆
HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
initData();//鍒濆鍖栫紦瀛樻暟鎹�
- houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+ houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
}
@@ -298,10 +301,11 @@
public void onDelClick(int position, HouseIdBean houseIdBean) {
DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity);
- delayedConfirmationCancelDialog.setTitleContent(getString(R.string.loading_title_tip));
+ delayedConfirmationCancelDialog.show();
+ delayedConfirmationCancelDialog.isHideTitle(true);
String homeName = "\"" + houseIdBean.getHomeName() + "\"";
delayedConfirmationCancelDialog.setContent(getString(R.string.delete_power_station).replace("%s", homeName));
- delayedConfirmationCancelDialog.show();
+
delayedConfirmationCancelDialog.startCountdown(4);
delayedConfirmationCancelDialog.setYesOnclickListener(new DelayedConfirmationCancelDialog.onYesOnclickListener() {
@Override
@@ -407,8 +411,38 @@
//璁惧鐐瑰嚮
deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() {
@Override
- public void onClick(int position, DeviceBean deviceBean) {
+ public void onClick(int position, CloudInverterDeviceBean deviceBean) {
+// GatewayBean gatewayBean = new GatewayBean();
+// gatewayBean.setCategorySecondName(deviceBean.getCategorySecondName());
+// gatewayBean.setDevice_mac(deviceBean.getOsn());
+// gatewayBean.setDevice_model(deviceBean.getOmodel());
+// gatewayBean.setOid(deviceBean.getOid());
+// gatewayBean.setGatewayId(deviceBean.getGatewayId());
+// gatewayBean.setAddresses(deviceBean.getAddresses());
+// gatewayBean.setSid(deviceBean.getSid());
+// gatewayBean.setDeviceId(deviceBean.getDeviceId());
+// gatewayBean.setDevice_name(deviceBean.getName());
+// gatewayBean.setDeviceStatus(deviceBean.getDeviceStatus());
+// gatewayBean.setHomeId(deviceBean.getHomeId());
+// gatewayBean.setSpk(deviceBean.getSpk());
+// gatewayBean.setDeviceType(deviceBean.getDeviceType());
+ List<CloudInverterDeviceBean> newList = new ArrayList<>();
+ newList.add(deviceBean);
+ // //鐩殑鏄负浜嗚幏鍙栨嬁鍒扮綉鍏矷D锛宮qtt閫氳绉橀挜绛変俊鎭紝缂撳瓨鏈湴閫嗗彉鍣ㄥ垪琛ㄩ噷闈紝鍙戦�佹暟鎹暟鎹椂鑷姩鍘荤紦瀛樺垪琛ㄩ噷闈㈠幓鏌ユ壘锛�
+ HdlDeviceLogic.getInstance().setDeviceRemoteInfo(newList, deviceBean.getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
+ @Override
+ public void onSuccess(List<GatewayBean> obj) {
+ GatewayBean newGatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(deviceBean.getOsn());
+ String jsonEncryption = URLEncodingUtils.encodeURIComponent(new Gson().toJson(newGatewayBean));
+ String path = HDLUniMP.UNI_EVENT_OPEN_DEVICE_DETAILS + "?inverterInfo=" + jsonEncryption;
+ HdlUniLogic.getInstance().openUniMP(path, null);
+ }
+ @Override
+ public void onFailure(HDLException e) {
+
+ }
+ });
}
});
//璁惧璁剧疆涓嬫媺绠ご棰滆壊
@@ -469,7 +503,7 @@
houseInfoAdapter = new HouseInfoAdapter(_mActivity);
viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter);
- houseInfoAdapter.setList(this.houseListBeanIDList);
+ houseInfoAdapter.setList(this.houseListBeanIDList, powerStationStatusValue);
//璁惧鏍囩
deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
@@ -579,15 +613,20 @@
} else if (HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE.equals(eventBus.getType())) {
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
- //uin鍏抽棴浣忓畢璇︽儏鐣岄潰閫氱煡
- if (MqttRecvClient.getInstance() != null) {
- MqttRecvClient.getInstance().removeAllTopic();
+ //鏄湪鐢电珯鍒楄〃椤垫墠杩涙潵杩欓噷
+ 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);
}
- loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
-
} else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) {
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
+// if (!isClickPowerStationLabel) {
+// return;
+// }
//杩涘幓浣忓畢璇︽儏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();
@@ -602,14 +641,29 @@
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
HdlLogLogic.print("姝e湪鐐瑰嚮銆愮數绔欍��");
-// HdlThreadLogic.runSubThread(new Runnable() {
-// @Override
-// public void run() {
- loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
- getStatusOverview();
-// }
-// });
-
+ if (!isReadData) {
+ //1锛屼粠棣栭〉-鏁呴殰-杩涙潵-鐢电珯锛堜笉璇诲彇锛�
+ //1锛屼粠鐢电珯-杩涙潵-鐢电珯锛堣鍙栦竴娆�,鍚庨潰杩涙潵涓嶅湪璇诲彇锛�
+ loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+ getStatusOverview();
+ }
+ } else if (eventBus.getType().equals(PowerStationStatus.All)) {
+ viewBinding.powerStationAllIl.parentLl.performClick();
+ } else if (eventBus.getType().equals(PowerStationStatus.malfunction)) {
+ viewBinding.powerStationFaultsIl.parentLl.performClick();
+ } else if (eventBus.getType().equals(PowerStationStatus.off)) {
+ viewBinding.powerStationOfflineIl.parentLl.performClick();
+ } else if (eventBus.getType().equals(PowerStationStatus.connecting)) {
+ viewBinding.powerStationConnectedIl.parentLl.performClick();
+ } else if (eventBus.getType().equals(ConstantManage.station_edit)) {
+ //缂栬緫鍚庢洿鏂颁竴涓嬩綇瀹呭垪琛�
+ //loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+// getStatusOverview();
+ if (houseInfoAdapter != null) {
+ initData();
+ //鏇存柊UI
+ houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);
+ }
}
}
}
@@ -656,6 +710,7 @@
* @param isClear 鏄惁娓呴櫎鏁版嵁
*/
private void loadNextPageHouseList(boolean isRefreshing, String key, String keyValue, String installedCapacityMin, String installedCapacityMax, String gridType, String powerStationStatus, long pageNo, boolean isClear) {
+ isReadData = true;
if (isClear) {
clearData();
}
@@ -689,7 +744,7 @@
if (houseInfoAdapter != null) {
initData();
//鏇存柊UI
- houseInfoAdapter.setList(houseListBeanIDList);
+ houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);
}
}
nullDataUpdateUi();
@@ -739,9 +794,9 @@
showLoading();
}
//鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
- HdlDeviceLogic.getInstance().getPowerStationDeviceList("", pageNo, pageSize, new CloudCallBeak<PageNumberObject<DeviceBean>>() {
+ HdlDeviceLogic.getInstance().getPowerStationDeviceList("", pageNo, pageSize, new CloudCallBeak<PageNumberObject<CloudInverterDeviceBean>>() {
@Override
- public void onSuccess(PageNumberObject<DeviceBean> pageNumberObject) {
+ public void onSuccess(PageNumberObject<CloudInverterDeviceBean> pageNumberObject) {
HdlThreadLogic.runMainThread(new Runnable() {
@Override
public void run() {
@@ -870,7 +925,7 @@
initializeInverter(list); //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;锛堟敞鎰�:鍙兘鏄湰鍦板彂閫佷簡(瑕佹悳绱㈠眬鍩熺綉閫嗗彉鍣ㄥ垪琛紝寤虹珛鏈湴閫氳閫氶亾),鍒犻櫎鐢电珯鎴愬姛鍚�,浜戠瑙g粦閫嗗彉鍣ㄧ殑鍏崇郴锛�
HdlResidenceLogic.getInstance().delHouseId(homeId);//鍒犻櫎鐢电珯缂撳瓨
initData();//鍒濆鍖栫紦瀛樻暟鎹�
- houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+ houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
}
--
Gitblit v1.8.0