mac
2023-12-28 a583d00d2e629b72cae74864d67168ccb5f71daa
2023年12月28日21:46:15

备份一下代码
1个文件已添加
10个文件已修改
214 ■■■■ 已修改文件
app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/enums/MessageAlarmStateType.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/enums/MessageStateType.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
@@ -16,6 +16,8 @@
    //all
    public static final String message_function_tab_switch = "message_function_tab_switch";
    //消息警告解决或者未解决
    public static final String message_function_push_post = "message_function_push";
    public static final String homepage_title_tab_switch = "homepage_title_tab_switch";
    //网络状态发生变化
    public static final String network_change_post = "network_change";
app/src/main/java/com/hdl/photovoltaic/enums/MessageAlarmStateType.java
New file
@@ -0,0 +1,19 @@
package com.hdl.photovoltaic.enums;
import static java.lang.annotation.RetentionPolicy.SOURCE;
import androidx.annotation.StringDef;
import java.lang.annotation.Retention;
@Retention(SOURCE)
@StringDef({MessageAlarmStateType.fault, MessageAlarmStateType.warn, MessageAlarmStateType.event})
public @interface MessageAlarmStateType {
    //故障
    String fault = "FAULT";
    //告警
    String warn = "WARN";
    //事件
    String event = "EVENT";
}
app/src/main/java/com/hdl/photovoltaic/enums/MessageStateType.java
@@ -4,18 +4,17 @@
import androidx.annotation.StringDef;
import com.hdl.sdk.link.gateway.type.GatewayMasterType;
import java.lang.annotation.Retention;
@Retention(SOURCE)
@StringDef({MessageStateType.untreated, MessageStateType.processed})
@StringDef({MessageStateType.untreated, MessageStateType.processed, MessageStateType.all})
public @interface MessageStateType {
    //未处理
    String untreated = "UNTREATED";
    //已处理
    String processed = "PROCESSED";
    //已处理
    //全部
    String all = "ALL";
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -41,7 +41,7 @@
    /**
     * 获取发生中缓存列表
     */
    public List<MessageBean> getRecoverMessageMemoryList() {
    public List<MessageBean> getNascentMessageMemoryList() {
        if (this.mListMessage == null || this.mListMessage.size() == 0) {
            return new ArrayList<>();
        }
@@ -57,9 +57,9 @@
    }
    /**
     * 获取处理中缓存列表
     * 获取恢复中缓存列表
     */
    public List<MessageBean> getNascentMessageMemoryList() {
    public List<MessageBean> getRecoverMessageMemoryList() {
        if (this.mListMessage == null || this.mListMessage.size() == 0) {
            return new ArrayList<>();
        }
@@ -67,6 +67,7 @@
        for (int i = 0; i < mListMessage.size(); i++) {
            MessageBean messageBean = mListMessage.get(i);
            if (messageBean.getStatus().equals(MessageStateType.processed)) {
                messageBean.setRead(true);//默认已读
                newList.add(messageBean);
            }
@@ -78,6 +79,11 @@
        return mListMessage;
    }
    /**
     * 添加消息到列表里面
     *
     * @param list -
     */
    public void setListMessage(List<MessageBean> list) {
        try {
            if (list == null || list.size() == 0) {
@@ -87,23 +93,37 @@
                this.mListMessage.addAll(list);
                return;
            }
            List<MessageBean> newList = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                MessageBean messageBean = list.get(i);
                this.setListMessage(list.get(i));
            }
        } catch (Exception ignored) {
        }
    }
    /**
     * 添加消息到列表里面
     *
     * @param messageBean -
     */
    public void setListMessage(MessageBean messageBean) {
        try {
            if (messageBean == null) {
                return;
            }
                boolean if_boolean = false;
                for (int j = 0; j < mListMessage.size(); j++) {
                    if (mListMessage.get(j).toString().equals(messageBean.getMsgId().toString())) {
                        mListMessage.remove(j);
                        mListMessage.add(j, messageBean);
            for (int i = 0; i < mListMessage.size(); i++) {
                if (mListMessage.get(i).getMsgId().toString().equals(messageBean.getMsgId().toString())) {
                    //存在替换
                    mListMessage.remove(i);
                    mListMessage.add(i, messageBean);
                        if_boolean = true;
                        break;
                    }
                }
                if (!if_boolean) {
                    newList.add(messageBean);
                //没有添加
                this.mListMessage.add(messageBean);
                }
            }
            this.mListMessage.addAll(newList);
        } catch (Exception ignored) {
        }
    }
@@ -146,7 +166,16 @@
     * @param cloudCallBeak -
     */
    public void getAllMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
        getMessageList(MessageStatus.all, cloudCallBeak);
        getMessageList(MessageStateType.all, cloudCallBeak);
    }
    /**
     * 获取恢复中列表
     *
     * @param cloudCallBeak -
     */
    public void getRecoverMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
        getMessageList(MessageStateType.processed, cloudCallBeak);
    }
    /**
@@ -154,33 +183,22 @@
     *
     * @param cloudCallBeak -
     */
    public void getRecoverMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
        getMessageList(MessageStatus.untreated, cloudCallBeak);
    }
    /**
     * 获取处理中列表
     *
     * @param cloudCallBeak -
     */
    public void getNascentMessageList(CloudCallBeak<List<MessageBean>> cloudCallBeak) {
        getMessageList(MessageStatus.processed, cloudCallBeak);
        getMessageList(MessageStateType.untreated, cloudCallBeak);
    }
    /**
     * 获取消息列表
     *
     * @param messageStatus all:全部,untreated:未处理,processed:已处理;
     * @param messageStateType all:全部,UNTREATED:未处理,PROCESSED:已处理;
     * @param cloudCallBeak -
     */
    public void getMessageList(MessageStatus messageStatus, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
    private void getMessageList(String messageStateType, CloudCallBeak<List<MessageBean>> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_List;
        JsonObject json = new JsonObject();
        if (messageStatus == MessageStatus.untreated) {
            json.addProperty("status", "UNTREATED");//未处理
        } else if (messageStatus == MessageStatus.processed) {
            json.addProperty("status", "PROCESSED");//已处理
        if (!MessageStateType.all.equals(messageStateType)) {
            json.addProperty("status", messageStateType);
        }
        json.addProperty("pageNo", 1);//页码
        json.addProperty("pageSize", 50);//页数
@@ -315,14 +333,6 @@
    }
    public enum MessageStatus {
        all,//全部
        untreated,//未处理
        processed,//已处理
    }
    static class MessageListClass {
app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -94,6 +94,10 @@
     * 改变组件样式
     *
     * @param textView    显示组件
     *                    如果设备从来没上报过数据数据 状态:连接中
     *                    设备在线 但是当前处于故障 状态:故障
     *                    设备在线(有上报过数据,没有故障)  状态:在线
     *                    设备离线 状态:离线
     * @param state_value 电站状态(1:正常(运行),2:离线,3:连接中,4:故障)
     */
    private void setTextViewStyle(TextView textView, int state_value) {
app/src/main/java/com/hdl/photovoltaic/ui/adapter/MessageAdapter.java
@@ -12,6 +12,7 @@
import androidx.recyclerview.widget.RecyclerView;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.enums.MessageAlarmStateType;
import com.hdl.photovoltaic.ui.bean.MessageBean;
import com.hdl.photovoltaic.utils.TimeUtils;
@@ -46,13 +47,13 @@
        holder.item_time_tv.setText(date);
        String type = "";//FAULT:故障,WARN:告警,EVENT:事件
        Drawable drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300);
        if (messageBean.getType().equals("FAULT")) {
        if (messageBean.getType().equals(MessageAlarmStateType.fault)) {
            type = mContext.getString(R.string.my_power_station_malfunction);
            drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_e34343);
        } else if (messageBean.getType().equals("WARN")) {
        } else if (messageBean.getType().equals(MessageAlarmStateType.warn)) {
            type = mContext.getString(R.string.message_alarm);
            drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300);
        } else if (messageBean.getType().equals("EVENT")) {
        } else if (messageBean.getType().equals(MessageAlarmStateType.event)) {
            type = "事件";
            drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_ffb300);
        }
app/src/main/java/com/hdl/photovoltaic/ui/bean/MessageBean.java
@@ -26,7 +26,7 @@
    private String address;//详细地址
    private boolean isRead;//是否已经读取
    private boolean isRead;//是否已经读取(true=读取)
    private HouseInfoBean.Location location = new HouseInfoBean.Location();//电站地址
app/src/main/java/com/hdl/photovoltaic/ui/message/AllMessageFragment.java
@@ -12,6 +12,7 @@
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.databinding.FragmentMessageAllBinding;
import com.hdl.photovoltaic.enums.MessageFunctionTabSwitch;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -79,6 +80,9 @@
            messageAllAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() {
                @Override
                public void onClick(int position, MessageBean item) {
                    if (position < 0 || position > mList.size()) {
                        return;
                    }
                    Intent intent = new Intent();
                    intent.putExtra("msgId", item.getMsgId().toString());
                    intent.setClass(_mActivity, MessageInfoActivity.class);
@@ -128,7 +132,7 @@
            if (isShowLoading) {
                showLoading();
            }
            HdlMessageLogic.getInstance().getMessageList(HdlMessageLogic.MessageStatus.all, new CloudCallBeak<List<MessageBean>>() {
            HdlMessageLogic.getInstance().getAllMessageList(new CloudCallBeak<List<MessageBean>>() {
                @Override
                public void onSuccess(List<MessageBean> list) {
                    if (isShowLoading) {
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
@@ -10,12 +10,18 @@
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.databinding.ActivityMessageInfoBinding;
import com.hdl.photovoltaic.enums.MessageAlarmStateType;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.bean.MessageBean;
import com.hdl.photovoltaic.utils.TimeUtils;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import org.greenrobot.eventbus.EventBus;
/**
 * 消息详情
@@ -76,18 +82,24 @@
                        String type = "";//FAULT:故障,WARN:告警,EVENT:事件
                        Drawable drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300);
                        if (mMessageBean.getType().equals("FAULT")) {
                        if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) {
                            type = _mActivity.getString(R.string.my_power_station_malfunction);
                            drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_e34343);
                        } else if (mMessageBean.getType().equals("WARN")) {
                        } else if (mMessageBean.getType().equals(MessageAlarmStateType.warn)) {
                            type = _mActivity.getString(R.string.message_alarm);
                            drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300);
                        } else if (mMessageBean.getType().equals("EVENT")) {
                        } else if (mMessageBean.getType().equals(MessageAlarmStateType.event)) {
                            type = "事件";
                            drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300);
                        }
                        viewBinding.messageInfoAlarmStateTv.setText(type);
                        viewBinding.messageInfoAlarmStateTv.setBackground(drawable);
                        if (mMessageBean.getStatus().equals(MessageStateType.processed)) {
                            //已经解决掉的隐藏
                            viewBinding.messageInfoBackTv.setVisibility(View.GONE);
                            viewBinding.messageInfoSolveTv.setVisibility(View.GONE);
                        }
                    }
                });
            }
@@ -104,6 +116,16 @@
        viewBinding.toolbarTopIn.topBackBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //恢复进来只是查看的
                if (mMessageBean.getStatus().equals(MessageStateType.untreated)) {
                    mMessageBean.setRead(true);
                    mMessageBean.setStatus(MessageStateType.untreated);
                    HdlMessageLogic.getInstance().setListMessage(mMessageBean);
                    BaseEventBus baseEventBus = new BaseEventBus();
                    baseEventBus.setTopic(ConstantManage.message_function_push_post);
                    baseEventBus.setType(MessageStateType.untreated);
                    EventBus.getDefault().post(baseEventBus);
                }
                finish();
            }
        });
@@ -121,7 +143,20 @@
                HdlMessageLogic.getInstance().getMessageMessageSolve(mMsgId, new CloudCallBeak<Boolean>() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        //恢复进来只是查看的
                        if (mMessageBean.getStatus().equals(MessageStateType.untreated)) {
                            //重置变量
                            mMessageBean.setRead(true);
                            mMessageBean.setStatus(MessageStateType.processed);
                            HdlMessageLogic.getInstance().setListMessage(mMessageBean);
                            BaseEventBus baseEventBus = new BaseEventBus();
                            baseEventBus.setTopic(ConstantManage.message_function_push_post);
                            baseEventBus.setType(MessageStateType.processed);
                            EventBus.getDefault().post(baseEventBus);
                        }
                        finish();
                    }
                    @Override
app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java
@@ -7,15 +7,14 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.gson.Gson;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.databinding.FragmentNascentMessageBinding;
import com.hdl.photovoltaic.enums.MessageFunctionTabSwitch;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.ui.adapter.MessageAdapter;
import com.hdl.photovoltaic.ui.bean.MessageBean;
@@ -43,7 +42,7 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        //初始化数据
        initData();
//        initData();
        //初始化界面
        initView();
        //初始化监听器
@@ -51,7 +50,8 @@
    }
    private void initData() {
        getNascentMessageList(true);
        mList.clear();
        mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
    }
    private void initEvent() {
@@ -67,6 +67,9 @@
        messageNascentAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() {
            @Override
            public void onClick(int position, MessageBean item) {
                if (position < 0 || position > mList.size()) {
                    return;
                }
                Intent intent = new Intent();
                intent.putExtra("msgId", item.getMsgId().toString());
                intent.setClass(_mActivity, MessageInfoActivity.class);
@@ -98,7 +101,14 @@
        //接收外部点击事件
        if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) {
            if (eventBus.getType().equals(MessageFunctionTabSwitch.nascent.toString())) {
                initData();
                getNascentMessageList(true);
            }
        } else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
            if (eventBus.getType().equals(MessageStateType.untreated)) {
                initData();
                updateListData();
            }
        }
    }
@@ -113,7 +123,7 @@
            if (isShowLoading) {
                showLoading();
            }
            HdlMessageLogic.getInstance().getMessageList(HdlMessageLogic.MessageStatus.untreated, new CloudCallBeak<List<MessageBean>>() {
            HdlMessageLogic.getInstance().getNascentMessageList(new CloudCallBeak<List<MessageBean>>() {
                @Override
                public void onSuccess(List<MessageBean> list) {
                    if (isShowLoading) {
app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
@@ -13,6 +13,7 @@
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.databinding.FragmentRecoverMessageBinding;
import com.hdl.photovoltaic.enums.MessageFunctionTabSwitch;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
@@ -44,7 +45,7 @@
    public void onBindView(Bundle savedInstanceState) {
        //初始化数据
        initData();
//        initData();
        //初始化界面
        initView();
        //初始化监听器
@@ -52,14 +53,8 @@
    }
    private void initData() {
//        for (int i = 0; i < 2; i++) {
//            MessageBean messageBean = new MessageBean();
////            messageBean.setContent("来了一条告警信息" + i);
//            messageBean.setHomeName(i + "");
////            messageBean.setTime("2023-12-06-15");
//            messageBean.setRead(false);
//            mList.add(messageBean);
//        }
        mList.clear();
        mList.addAll(HdlMessageLogic.getInstance().getRecoverMessageMemoryList());
    }
    private void initEvent() {
@@ -76,6 +71,9 @@
        messageRecoverAdapter.setNoOnclickListener(new MessageAdapter.OnclickListener() {
            @Override
            public void onClick(int position, MessageBean item) {
                if (position < 0 || position > mList.size()) {
                    return;
                }
                Intent intent = new Intent();
                intent.putExtra("msgId", item.getMsgId().toString());
                intent.setClass(_mActivity, MessageInfoActivity.class);
@@ -108,7 +106,13 @@
        if (eventBus.getTopic().equals(ConstantManage.message_function_tab_switch)) {
            if (eventBus.getType().equals(MessageFunctionTabSwitch.recover.toString())) {
                HdlLogLogic.print("正在点击【已恢复】");
                initData();
                getRecoverMessageList(true);
            }
        } else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
            if (eventBus.getType().equals(MessageStateType.processed)) {
                initData();
                updateListData();
            }
        }
    }
@@ -125,7 +129,7 @@
            if (isShowLoading) {
                showLoading();
            }
            HdlMessageLogic.getInstance().getMessageList(HdlMessageLogic.MessageStatus.processed, new CloudCallBeak<List<MessageBean>>() {
            HdlMessageLogic.getInstance().getRecoverMessageList(new CloudCallBeak<List<MessageBean>>() {
                @Override
                public void onSuccess(List<MessageBean> list) {
                    if (isShowLoading) {