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 { //解决问题手机没有网自动登录进来,默认传上一次的住宅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; 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);//逆变器wifi状态-重新搜索一下逆变器-重新更新连接状态 } 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); } } 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 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); //发起初始化指令给逆变器;(注意:前面已先解绑云端逆变器,mqtt通道已断开,初始化只能是本地发送(先搜索局域网逆变器列表,建立本地通讯通道)) HdlResidenceLogic.getInstance().delHouseId(homeId);//删除电站缓存 HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());//删除电站缓存 initData();//初始化缓存数据 refreshDetails(); //更新电站选中状态 setSelectState(); refreshDetails(houseIdBean.getHomeId()); setSelectState();//更新电站选中状态 if (houseListAdapter != null) { houseListAdapter.setList(houseListBeanIDList); //更新列表数据 } nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空 } @@ -524,7 +532,7 @@ * 通知uni更新数据 * (在平台上删除C端当前住宅后,获取列表实收要通知uni那边更新界面卡片) */ 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(); 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();//初始化缓存数据 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);//检测数据是否为空 } } }