From 6266d263e91a6e90c64fb3e6f2be348146371cc8 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期五, 17 五月 2024 16:17:03 +0800 Subject: [PATCH] 2024年05月17日16:17:01 --- app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 163 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 103 insertions(+), 60 deletions(-) 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 b4e83d1..f94d30b 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 @@ -34,6 +34,7 @@ import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter; import com.hdl.photovoltaic.ui.bean.DeviceBean; 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.widget.DefaultFilteringDialog; @@ -42,6 +43,10 @@ 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 org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; import java.util.List; @@ -87,6 +92,9 @@ @Override public void onBindView(Bundle savedInstanceState) { + //鏀惧湪杩欓噷涔熷锛岃繖閲屽彧鏄鍒涘缓涓�娆� +// loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); +// getStatusOverview(); initData(); //鍒濆鍖� initView(); @@ -106,6 +114,8 @@ isClickPowerStationLabel = true; viewBinding.powerStationLabel.setTextAppearance(R.style.Text20Style); viewBinding.deviceLabel.setTextAppearance(R.style.Text16Style); + viewBinding.editIv.setVisibility(View.VISIBLE);//缂栬緫鍥炬爣闅愯棌 + viewBinding.addIv.setVisibility(View.VISIBLE);//娣诲姞鍥炬爣闅愯棌 viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戞樉绀� viewBinding.deviceLabelParent.setVisibility(View.GONE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戦殣钘� loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); @@ -191,7 +201,7 @@ if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) { if (!isHouseLoadingMore) { // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔 - HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴"); + HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴"); loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, ++currentHouseListPage, false); } } @@ -202,7 +212,7 @@ @Override public void onClick(int position, HouseIdBean houseIdBean) { //鐐瑰嚮浣忓畢璇︽儏 - HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏--->" + new Gson().toJson(houseIdBean), false); + HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏---" + new Gson().toJson(houseIdBean), false); HdlResidenceLogic.getInstance().switchHouse(houseIdBean); String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus(); HdlUniLogic.getInstance().openUniMP(path, null); @@ -377,7 +387,7 @@ if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) { if (!isDeviceLoadingMore) { // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔 - HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴"); + HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴"); loadNextPageDeviceList(false, ++currentDeviceListPage, false); } } @@ -398,6 +408,11 @@ private void initView() { viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE); viewBinding.deviceLabelParent.setVisibility(View.GONE); + + viewBinding.powerStationAllIl.stationTitleTv.setText(getString(R.string.message_all)); + viewBinding.powerStationFaultsIl.stationTitleTv.setText(getString(R.string.my_power_station_malfunction)); + viewBinding.hpowerStationOfflineIl.stationTitleTv.setText(getString(R.string.my_power_station_off_line)); + viewBinding.powerStationConnectedIl.stationTitleTv.setText(getString(R.string.to_be_added)); //鐢电珯鏍囩 houseInfoAdapter = new HouseInfoAdapter(_mActivity); viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity)); @@ -422,6 +437,8 @@ this.deviceInfoList.add(new DeviceBean()); // this.deviceInfoList.addAll(HdlDeviceLogic.getInstance().getListDevice()); } + + } /** @@ -429,11 +446,13 @@ * * @param eventBus 鏁版嵁 */ - @Override + @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onEventMessage(BaseEventBus eventBus) { super.onEventMessage(eventBus); if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(eventBus.getTopic())) { if (HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION.equals(eventBus.getType())) { + // 鍙栨秷绮樻�т簨浠� + EventBus.getDefault().removeStickyEvent(eventBus); //uin鍒涘缓鐢电珯鎴愬姛鍚庨�氱煡 loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); if (eventBus.getData() != null) { @@ -444,6 +463,8 @@ } } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT.equals(eventBus.getType())) { + // 鍙栨秷绮樻�т簨浠� + EventBus.getDefault().removeStickyEvent(eventBus); //todo 鐜板湪榛樿鍒锋柊鍏ㄩ儴 //uin缂栬緫浣忓畢閫氱煡 // String homeId = HdlUniLogic.getInstance().getKeyValue("homeId", eventBus.getData()); @@ -470,6 +491,8 @@ } } 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(); @@ -477,6 +500,8 @@ 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); //杩涘幓浣忓畢璇︽儏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(); @@ -488,10 +513,43 @@ } else if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) { //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢 if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) { + // 鍙栨秷绮樻�т簨浠� + 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(); +// } +// }); + } } + } + + + /** + * 鐢电珯鐘舵�佹瑙� + */ + private void getStatusOverview() { + HdlResidenceLogic.getInstance().getStatusOverview(new CloudCallBeak<StatusOverviewBean>() { + @Override + public void onSuccess(StatusOverviewBean statusOverviewBean) { + if (statusOverviewBean == null) { + return; + } + viewBinding.powerStationAllIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal())); + viewBinding.powerStationFaultsIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault())); + viewBinding.hpowerStationOfflineIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline())); + viewBinding.powerStationConnectedIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting())); + } + + @Override + public void onFailure(HDLException e) { + + } + }); } @@ -511,15 +569,7 @@ * @param pageNo 椤电爜 * @param isClear 鏄惁娓呴櫎鏁版嵁 */ - private void loadNextPageHouseList(boolean isRefreshing, - String key, - String keyValue, - String installedCapacityMin, - String installedCapacityMax, - String gridType, - String powerStationStatus, - long pageNo, - boolean isClear) { + private void loadNextPageHouseList(boolean isRefreshing, String key, String keyValue, String installedCapacityMin, String installedCapacityMax, String gridType, String powerStationStatus, long pageNo, boolean isClear) { if (isClear) { clearData(); } @@ -535,57 +585,50 @@ } //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃 - HdlResidenceLogic.getInstance().getResidenceIdList( - key, - keyValue, - installedCapacityMin, - installedCapacityMax, - gridType, - powerStationStatus, - pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() { + HdlResidenceLogic.getInstance().getResidenceIdList(key, keyValue, installedCapacityMin, installedCapacityMax, gridType, powerStationStatus, pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() { + @Override + public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) { + HdlThreadLogic.runMainThread(new Runnable() { @Override - public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) { - HdlThreadLogic.runMainThread(new Runnable() { - @Override - public void run() { - if (isRefreshing) { - hideLoading(); - } - isHouseLoadingMore = false; - if (houseBeanClass != null) { - currentHouseListTotal = (int) houseBeanClass.getTotalPage(); - currentHouseListPage = (int) houseBeanClass.getPageNo(); - //鏇存柊缂撳瓨 - HdlResidenceLogic.getInstance().setHouseIdList(houseBeanClass.getList()); - if (houseInfoAdapter != null) { - initData(); - //鏇存柊UI - houseInfoAdapter.setList(houseListBeanIDList); - } - } - nullDataUpdateUi(); + public void run() { + if (isRefreshing) { + hideLoading(); + } + isHouseLoadingMore = false; + if (houseBeanClass != null) { + currentHouseListTotal = (int) houseBeanClass.getTotalPage(); + currentHouseListPage = (int) houseBeanClass.getPageNo(); + //鏇存柊缂撳瓨 + HdlResidenceLogic.getInstance().setHouseIdList(houseBeanClass.getList()); + if (houseInfoAdapter != null) { + initData(); + //鏇存柊UI + houseInfoAdapter.setList(houseListBeanIDList); } - }, _mActivity, ShowErrorMode.YES); + } + nullDataUpdateUi(); + } + }, _mActivity, ShowErrorMode.YES); + + } + + @Override + public void onFailure(HDLException e) { + HdlThreadLogic.runMainThread(new Runnable() { + @Override + public void run() { + if (currentHouseListPage > 1) { + --currentHouseListPage; + } + isHouseLoadingMore = false; + if (isRefreshing) { + hideLoading(); + } } - - @Override - public void onFailure(HDLException e) { - HdlThreadLogic.runMainThread(new Runnable() { - @Override - public void run() { - if (currentHouseListPage > 1) { - --currentHouseListPage; - } - isHouseLoadingMore = false; - if (isRefreshing) { - hideLoading(); - } - - } - }, _mActivity, ShowErrorMode.YES); - } - }); + }, _mActivity, ShowErrorMode.YES); + } + }); } /** -- Gitblit v1.8.0