mac
2024-10-24 15c2fc33ef1023a045a76ae594b3da76a281ea20
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -12,6 +12,7 @@
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.home.type.HomeType;
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
@@ -19,8 +20,10 @@
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityCpowerStationBinding;
import com.hdl.photovoltaic.enums.LowerTagType;
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.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMqttLogic;
@@ -43,10 +46,14 @@
import com.hdl.sdk.link.core.config.HDLLinkConfig;
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.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import cn.jpush.android.api.JPushInterface;
@@ -69,7 +76,8 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setNotificationBarBackgroundColor(CustomColor.white);
//        setNotificationBarBackgroundColor(CustomColor.white);
        getWindow().setStatusBarColor(getColor(R.color.text_FFFFFFFF));
        setStatusBarTextColor();
        //C端启动App自动打开小程序电站详情界面
        startAppAutomaticallyOpenUni();
@@ -194,6 +202,24 @@
        } else if (event.getTopic().contains(HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL) && event.getType().contains(HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK)) {
            //物理按键返回事件(包括左滑移除事件)
            killProcessApp();
        } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(event.getType())) {
            if (MqttRecvClient.getInstance() != null) {
                MqttRecvClient.getInstance().removeAllTopic();
            }
            String homeId = event.getData().toString();
            //进去住宅详情uni读取逆变器列表成功后通知
            for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId).size(); i++) {
                String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId).get(i).getGatewayId();
                //字符串是自己按规则拼接的,里面注册主题时会解析字符串,只拿getGatewayId()值;
                String topic = "/user/" + gatewayId + "/#";
                //进去住宅详情开始订阅主题
                MqttRecvClient.getInstance().checkAndsubscribeAllTopics(topic);//订阅【逆变器】消息
            }
            String topicHome = "/user/" + homeId + "/#";
            MqttRecvClient.getInstance().checkAndsubscribeAllTopics(topicHome);//订阅【电站】消息
        }
    }
@@ -206,10 +232,20 @@
        if (delay) {
            SystemClock.sleep(2000);
        }
        if (TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken())) {
            //其实刷新token失败已通知退出登录,数据已经清空,因为等2s uni加载慢导致请求链接的时候出现token为空
            return;
        }
        List<HouseIdBean> HouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
        if (HouseIdList.size() == 0) {
            String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C;
            HdlUniLogic.getInstance().openUniMP(path, null);
            if (TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
                String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C;
                HdlUniLogic.getInstance().openUniMP(path, null);
            } else {
                //解决问题手机没有网自动登录进来,默认传上一次的住宅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++) {