mac
2024-03-11 7c2dce60eeb3b3b54c52890ece8aa472d5512a04
2024年03月11日16:03:42

备份代码
3个文件已添加
5个文件已修改
513 ■■■■ 已修改文件
app/src/main/java/com/hdl/photovoltaic/enums/FilterType.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java 359 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/checked_38c494.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/fillet_line_38c494.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values/colors.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/enums/FilterType.java
New file
@@ -0,0 +1,8 @@
package com.hdl.photovoltaic.enums;
public @interface FilterType {
    String all = "";//默认全部
    String deviceType = "deviceType";
    String type = "type";
    String timeType = "timeType";
}
app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -17,6 +17,9 @@
    public static final String POST_Message_Info = "/home-wisdom/app/powerStation/message/info";
    //消息标记已读(已解除)
    public static final String POST_Message_Solve = "/home-wisdom/app/powerStation/message/solve";
    //消息全部已读
    public static final String POST_Message_AllRead = "/home-wisdom/app/powerStation/message/allRead";
    //endregion
    //region -----C摄氏度,F华氏度(住宅)---------
app/src/main/java/com/hdl/photovoltaic/other/HdlMessageLogic.java
@@ -45,6 +45,9 @@
    }
    public void clearListMessage() {
        if (mListMessage == null) {
            return;
        }
        if (mListMessage.size() > 0) {
            mListMessage.clear();
        }
@@ -134,7 +137,7 @@
    }
    public List<MessageBean> getAllMessageList() {
        return mListMessage;
        return sortList(mListMessage);
    }
@@ -413,7 +416,7 @@
    }
    /**
     * 获取指定页的获取消息列表
     * 获取指定页的获取消息列表(用于B端)
     *
     * @param pageNo           页码
     * @param messageStateType all:全部,UNTREATED:未处理,PROCESSED:已处理;
@@ -457,6 +460,57 @@
    }
    /**
     * 获取指定页的获取消息列表(用于C端)
     *
     * @param pageNo           页码
     * @param messageStateType all:全部,UNTREATED:未处理,PROCESSED:已处理;
     * @param filter_key       类型(设备,等级,时间)
     * @param filter_value     deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元);
     *                         type(FAULT :故障; WARN :告警; EVENT :事件(提示));
     *                         timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
     * @param cloudCallBeak    -
     */
    public void getPageNoMessageList_C(int pageNo, String messageStateType, String filter_key, String filter_value, CloudCallBeak<MessageListClass> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_List;
        JsonObject json = new JsonObject();
        if (!MessageStateType.all.equals(messageStateType)) {
            json.addProperty("status", messageStateType);
        }
        if (!TextUtils.isEmpty(filter_key) && !TextUtils.isEmpty(filter_value)) {
            json.addProperty(filter_key, filter_value);
        }
        json.addProperty("pageNo", pageNo);//页码
        json.addProperty("pageSize", pageSize);//页数
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String jsonStr) {
                if (TextUtils.isEmpty(jsonStr)) {
                    if (cloudCallBeak != null) {
                        cloudCallBeak.onSuccess(new MessageListClass());
                    }
                    return;
                }
                Gson gson = new Gson();
                MessageListClass oldMessageListClass = gson.fromJson(jsonStr, MessageListClass.class);
                setListMessage(oldMessageListClass.getList());
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(oldMessageListClass);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    /**
     * 获取消息详情
@@ -523,6 +577,35 @@
    }
    /**
     * 消息全部已读
     *
     * @param homeId        消息id
     * @param cloudCallBeak -
     */
    public void messageAllRead(String homeId, CloudCallBeak<Boolean> cloudCallBeak) {
        String requestUrl = HttpApi.POST_Message_AllRead;
        JsonObject json = new JsonObject();
        json.addProperty("homeId", homeId);
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String str) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(true);
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onFailure(e);
                }
            }
        });
    }
    public static class MessageListClass {
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
@@ -1,6 +1,7 @@
package com.hdl.photovoltaic.ui.message;
import android.annotation.SuppressLint;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
@@ -11,6 +12,7 @@
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityMessageInfoBinding;
import com.hdl.photovoltaic.enums.MessageAlarmStateType;
import com.hdl.photovoltaic.enums.MessageStateType;
@@ -118,15 +120,22 @@
            @Override
            public void onClick(View v) {
                if (mMessageBean == null) {
                    finish();
                    return;
                }
                //恢复进来只是查看的
                //未处理
                if (mMessageBean.getStatus().equals(MessageStateType.untreated)) {
                    //改变缓存状态
                    HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated);
                    BaseEventBus baseEventBus = new BaseEventBus();
                    baseEventBus.setTopic(ConstantManage.message_function_push_post);
                    baseEventBus.setType(MessageStateType.untreated);
                    //改变缓存状态
                    if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) {
                        HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated);
                        baseEventBus.setType(MessageStateType.untreated);
                    } else {
                        //除“故障”外,其他等级信息“已读”后,自动移出“发生中”列表并加入“历史记录”列表
                        HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed);
                        baseEventBus.setType(MessageStateType.processed);
                    }
                    EventBus.getDefault().post(baseEventBus);
                }
                finish();
@@ -137,15 +146,22 @@
            @Override
            public void onClick(View v) {
                if (mMessageBean == null) {
                    finish();
                    return;
                }
                //恢复进来只是查看的
                //未处理
                if (mMessageBean.getStatus().equals(MessageStateType.untreated)) {
                    //改变缓存状态
                    HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated);
                    BaseEventBus baseEventBus = new BaseEventBus();
                    baseEventBus.setTopic(ConstantManage.message_function_push_post);
                    baseEventBus.setType(MessageStateType.untreated);
                    //改变缓存状态
                    if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) {
                        HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated);
                        baseEventBus.setType(MessageStateType.untreated);
                    } else {
                        //除“故障”外,其他等级信息“已读”后,自动移出“发生中”列表并加入“历史记录”列表
                        HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed);
                        baseEventBus.setType(MessageStateType.processed);
                    }
                    EventBus.getDefault().post(baseEventBus);
                }
                finish();
@@ -162,7 +178,7 @@
                        if (mMessageBean == null) {
                            return;
                        }
                        //恢复进来只是查看的
                        //未处理
                        if (mMessageBean.getStatus().equals(MessageStateType.untreated)) {
                            HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed);
@@ -194,6 +210,7 @@
    }
    private void initView() {
        viewBinding.toolbarTopIn.topTitleTv.setText(R.string.message_alarm_info);
@@ -201,6 +218,12 @@
        viewBinding.toolbarTopIn.topBackBtn.setVisibility(View.VISIBLE);
        viewBinding.toolbarTopIn.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
        if (!UserConfigManage.getInstance().isBAccount()) {
            viewBinding.messageInfoBackTv.setTextColor(getColor(R.color.text_38C494));
            viewBinding.messageInfoBackTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.fillet_line_38c494));
            viewBinding.messageInfoSolveTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.checked_38c494));
        }
        viewBinding.messageInfoAlarmContentIn.leftTitleTv.setText(R.string.messagealarm_details_content);
        viewBinding.messageInfoAlarmDeviceIn.leftTitleTv.setText(R.string.messagealarm_details_device);
        viewBinding.messageInfoAlarmRangeIn.leftTitleTv.setText(R.string.message_alarm_detailsaffect_region);
app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
@@ -1,31 +1,44 @@
package com.hdl.photovoltaic.ui.newC;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityMessageCenterListBinding;
import com.hdl.photovoltaic.enums.FilterType;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.bean.MessageBean;
import com.hdl.photovoltaic.ui.message.MessageInfoActivity;
import com.hdl.photovoltaic.ui.newC.adapter.MessageCenterListAdapter;
import com.hdl.photovoltaic.widget.TypeTitleListDialog;
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.HashMap;
import java.util.List;
import java.util.Map;
/**
 * C端消息中心列表
@@ -39,13 +52,16 @@
    private boolean isAlarmDeviceClick = true;//true表示告警设备被选中,则false表示报警记录被选中
    private final List<MessageBean> mList = new ArrayList<>();
    private int currentPage = 0; // 当前页码
    private int currentTotal = 0; // 总页码
    private int mCurrentPage = 0; // 当前页码
    private int mCurrentTotal = 0; // 总页码
    private int mTotalCount1 = 0;//消息数量总数
    private int mTotalCount2 = 0;//消息数量总数
    private String mFilterKye = FilterType.all;//过滤类型
    private String mFilterValue = FilterType.all;//过滤类型值
    private boolean isLoadingMore = false; // 标记正在加载更多数据
    LinearLayoutManager layoutManager;
    LinearLayoutManager mLayoutManager;
    @Override
    public Object getContentView() {
@@ -62,7 +78,7 @@
        //初始化界面监听器
        initEvent();
        //进来读取一次数据(为了更新currentPage,currentTotal这个值)
        loadNextPageNascentMessageList(1, true);
        loadNextPageMessageList(1, true, FilterType.all, FilterType.all);
    }
    private void initEvent() {
@@ -70,7 +86,28 @@
        viewBinding.toolbarTopMessageCenterListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clearCacheData();
                finish();
            }
        });
        //清空所有未读按钮
        viewBinding.toolbarTopMessageCenterListRl.topMoreBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showLoading();
                HdlMessageLogic.getInstance().messageAllRead(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<Boolean>() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        hideLoading();
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        hideLoading();
                        HdlThreadLogic.toast(_mActivity, e);
                    }
                });
            }
        });
@@ -78,20 +115,21 @@
        viewBinding.messageTabAllDeviceCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<String> stringList = new ArrayList<>();
                stringList.add(getString(R.string.alarm_all_device));
                stringList.add(getString(R.string.alarm_all_device_inverter));
                stringList.add(getString(R.string.alarm_all_device_bms));
                stringList.add(getString(R.string.alarm_all_device_battery_cell));
                viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.up);
                viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
                viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
                List<String> stringList = getTypeList(FilterType.deviceType);
                TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList);
                typeTitleListDialog.show();
                typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() {
                    @Override
                    public void onClick(int position, String title) {
                        viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.up);
                        viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
                        viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
                        viewBinding.allDeviceTitleTv.setText(title);
                        mFilterKye = FilterType.deviceType;
                        mFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                    }
                });
@@ -102,21 +140,19 @@
        viewBinding.messageTabAllGradeCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<String> stringList = new ArrayList<>();
                stringList.add(getString(R.string.alarm_all_grade));
                stringList.add(getString(R.string.alarm_all_grade_malfunction));
                stringList.add(getString(R.string.alarm_all_grade_warning));
                stringList.add(getString(R.string.alarm_all_grade_tip));
                viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
                viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.up);
                viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
                List<String> stringList = getTypeList(FilterType.type);
                TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList);
                typeTitleListDialog.show();
                typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() {
                    @Override
                    public void onClick(int position, String title) {
                        viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
                        viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.up);
                        viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
                        viewBinding.allGradeTitleTv.setText(title);
                        mFilterKye = FilterType.type;
                        mFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                    }
                });
            }
@@ -125,22 +161,19 @@
        viewBinding.messageTabAllTimeCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<String> stringList = new ArrayList<>();
                stringList.add(getString(R.string.alarm_all_time));
                stringList.add(getString(R.string.alarm_all_time_same_day));
                stringList.add(getString(R.string.alarm_all_time_3));
                stringList.add(getString(R.string.alarm_all_time_7));
                stringList.add(getString(R.string.alarm_all_time_30));
                viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
                viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
                viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.up);
                List<String> stringList = getTypeList(FilterType.timeType);
                TypeTitleListDialog typeTitleListDialog = new TypeTitleListDialog(_mActivity, stringList);
                typeTitleListDialog.show();
                typeTitleListDialog.setOnListener(new TypeTitleListDialog.OnClickListener() {
                    @Override
                    public void onClick(int position, String title) {
                        viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
                        viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
                        viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.up);
                        viewBinding.allTimeTitleTv.setText(title);
                        mFilterKye = FilterType.timeType;
                        mFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                    }
                });
            }
@@ -150,18 +183,70 @@
        viewBinding.messageBottomAlarmDeviceCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isAlarmDeviceClick) {
                    return;//防止多次点击
                }
                isAlarmDeviceClick = true;
                refreshBottomStyle(true);
                loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
            }
        });
        //告警记录按钮
        viewBinding.messageBottomAlarmRecordCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!isAlarmDeviceClick) {
                    return;//防止多次点击
                }
                isAlarmDeviceClick = false;
                refreshBottomStyle(false);
                loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
            }
        });
        //下拉按钮
        viewBinding.messageContentSrl.setColorSchemeResources(R.color.text_FF245EC3);
        viewBinding.messageContentSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                viewBinding.messageContentSrl.setRefreshing(false);
                loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
            }
        });
        //上拉按钮
        viewBinding.messageContentRl.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
//                super.onScrolled(recyclerView, dx, dy);
                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
                if (layoutManager == null) {
                    return;
                }
                int visibleItemCount = layoutManager.getChildCount();
                int totalItemCount = layoutManager.getItemCount();
                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
                    if (!isLoadingMore) {
                        // 滑动到了底部,执行相应的操作
                        HdlLogLogic.print("--->滑动到了底部");
                        loadNextPageMessageList(++mCurrentPage, false, mFilterKye, mFilterValue);
                    }
                }
            }
        });
        if (messageCenterListAdapter != null) {
            messageCenterListAdapter.setNoOnclickListener(new MessageCenterListAdapter.OnclickListener() {
                @Override
                public void onClick(int position, MessageBean messageBean) {
                    Intent intent = new Intent();
                    intent.putExtra("msgId", messageBean.getMsgId().toString());
                    intent.setClass(_mActivity, MessageInfoActivity.class);
                    startActivity(intent);
                }
            });
        }
    }
@@ -177,9 +262,9 @@
        viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
        viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
        refreshBottomStyle(true);
        layoutManager = new LinearLayoutManager(_mActivity);
        mLayoutManager = new LinearLayoutManager(_mActivity);
        messageCenterListAdapter = new MessageCenterListAdapter(_mActivity);
        viewBinding.messageContentRl.setLayoutManager(layoutManager);
        viewBinding.messageContentRl.setLayoutManager(mLayoutManager);
        viewBinding.messageContentRl.setAdapter(messageCenterListAdapter);
        messageCenterListAdapter.setList(mList);
        this.nullDataUpdateUi();
@@ -193,11 +278,19 @@
     *
     * @param pageNo        页数
     * @param isShowLoading 是否启动加载框 true启动
     * @param filter_key    类型(设备,等级,时间)
     * @param filter_value  deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元);
     *                      type(FAULT :故障; WARN :告警; EVENT :事件(提示));
     *                      timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
     */
    private void loadNextPageNascentMessageList(int pageNo, boolean isShowLoading) {
    private void loadNextPageMessageList(int pageNo, boolean isShowLoading, String filter_key, String filter_value) {
        if (pageNo == 1) {
            //表示从第一页可以读取,默认清空所有缓存数据;
            clearCacheData();
        }
        //第一页读取数据强制读
        if (pageNo > 1 && currentPage > currentTotal) {
            --currentPage;
        if (pageNo > 1 && mCurrentPage > mCurrentTotal) {
            --mCurrentPage;
            //当前页不能大于总页数
            return;
        }
@@ -205,12 +298,24 @@
        if (isShowLoading) {
            showLoading();
        }
        HdlMessageLogic.getInstance().getPageNoMessageList(pageNo, MessageStateType.untreated, new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
        String messageStateType;
        if (isAlarmDeviceClick) {
            messageStateType = MessageStateType.untreated;
        } else {
            messageStateType = MessageStateType.processed;
        }
        HdlMessageLogic.getInstance().getPageNoMessageList_C(pageNo, messageStateType, filter_key, filter_value, new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
            @Override
            public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
                if (messageListClass != null) {
                    currentTotal = (int) messageListClass.getTotalPage();
                    currentPage = (int) messageListClass.getPageNo();
                    mCurrentTotal = (int) messageListClass.getTotalPage();
                    mCurrentPage = (int) messageListClass.getPageNo();
                    int totalCount = (int) messageListClass.getTotalCount();
                    if (isAlarmDeviceClick) {
                        mTotalCount1 = totalCount;
                    } else {
                        mTotalCount2 = totalCount;
                    }
                    updateListData();
                }
                isLoadingMore = false;
@@ -221,8 +326,8 @@
            @Override
            public void onFailure(HDLException e) {
                if (currentPage > 1) {
                    --currentPage;
                if (mCurrentPage > 1) {
                    --mCurrentPage;
                }
                isLoadingMore = false;
                if (isShowLoading) {
@@ -230,6 +335,8 @@
                }
            }
        });
    }
    /**
@@ -247,12 +354,11 @@
                        if (jsonObject.containsKey("untreatedCount")) {
                            //未处理数量
                            String untreatedCount = jsonObject.getString("untreatedCount");
                            refreshNascentCount(untreatedCount);
                            refreshCount();
                        }
                        if (jsonObject.containsKey("unreadCount")) {
                            //未读数量
                            String unreadCount = jsonObject.getString("unreadCount");
                            refreshUnreadNascentCount(unreadCount);
                        }
                    }
                });
@@ -269,19 +375,49 @@
        });
    }
    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
    public void onEventMessage(BaseEventBus eventBus) {
        super.onEventMessage(eventBus);
        if (eventBus == null) {
            return;
        }
        if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
            if (eventBus.getType().equals(MessageStateType.untreated)) {
                updateListData();
            } else if (eventBus.getType().equals(MessageStateType.processed)) {
                if (mTotalCount1 > 0) {
                    mTotalCount1--;
                    mTotalCount2++;
                }
                updateListData();
            }
        }
    }
    /**
     * 刷新信息数量总数
     */
    private void refreshNascentCount(String totalCount) {
    private void refreshCount() {
        HdlThreadLogic.runMainThread(new Runnable() {
            @Override
            public void run() {
                TextView textView = _mActivity.findViewById(R.id.message_bottom_alarm_device_title_tv);
                if (textView != null) {
                    textView.setText(getText(R.string.alarm_device));
                    if (!TextUtils.isEmpty(totalCount) && !totalCount.equals("0")) {
                        String s = getText(R.string.message_nascent) + "(" + totalCount + ")";
                        textView.setText(s);
                //设备报警总数量
                TextView textView1 = _mActivity.findViewById(R.id.message_bottom_alarm_device_title_tv);
                if (textView1 != null) {
                    textView1.setText(getText(R.string.alarm_device));
                    if (mTotalCount1 > 0) {
                        String s = getText(R.string.alarm_device) + "(" + mTotalCount1 + ")";
                        textView1.setText(s);
                    }
                }
                //报警记录总数量
                TextView textView2 = _mActivity.findViewById(R.id.message_bottom_alarm_record_title_tv);
                if (textView2 != null) {
                    textView2.setText(getText(R.string.alarm_record));
                    if (mTotalCount2 > 0) {
                        String s = getText(R.string.alarm_record) + "(" + mTotalCount2 + ")";
                        textView2.setText(s);
                    }
                }
            }
@@ -317,31 +453,6 @@
    /**
     * 刷新角标【未读】信息数量总数
     */
    private void refreshUnreadNascentCount(String unreadCount) {
        HdlThreadLogic.runMainThread(new Runnable() {
            @SuppressLint("SetTextI18n")
            @Override
            public void run() {
                TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
                if (textView != null) {
                    if (TextUtils.isEmpty(unreadCount) || unreadCount.equals("0")) {
                        textView.setVisibility(View.GONE);
                    } else {
                        textView.setVisibility(View.VISIBLE);
                        if (unreadCount.length() > 2) {
                            textView.setText("99+");
                        } else {
                            textView.setText(unreadCount);
                        }
                    }
                }
            }
        });
    }
    /**
     * 刷新列表数据
     */
    private void updateListData() {
@@ -351,11 +462,9 @@
                //读取缓存数据
                updateCacheData();
                //刷新列表
                if (messageCenterListAdapter != null) {
                    messageCenterListAdapter.setList(mList);
                }
                updateRecyclerViewList();
                //显示未读信息总数量
                getUnreadCount();
                refreshCount();
                //显示没数据Ui样式
                nullDataUpdateUi();
@@ -364,11 +473,30 @@
    }
    /**
     * 重新更新列表数据
     */
    private void updateRecyclerViewList() {
        if (messageCenterListAdapter == null) {
            return;
        }
        messageCenterListAdapter.setList(mList);
    }
    /**
     * 清空所有缓存数据(获取第一页之前要清空所有缓存数据)
     */
    private void clearCacheData() {
        mList.clear();
        HdlMessageLogic.getInstance().clearListMessage();//表示强制清空所有缓存信息
    }
    /**
     * 更新缓存数据
     */
    private void updateCacheData() {
        mList.clear();
        mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
        mList.addAll(HdlMessageLogic.getInstance().getAllMessageList());
    }
@@ -378,4 +506,69 @@
    private void nullDataUpdateUi() {
        HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.message_alarm_data_null), mList.size() > 0);
    }
    /**
     * 查找过滤值
     *
     * @param title 标题
     * @return 过滤值
     */
    public String findFilterValueString(String title) {
        Map<String, String> map = new HashMap<>();
        map.put(getString(R.string.alarm_all_device), "");//设备全部
        map.put(getString(R.string.alarm_all_device_inverter), "INV");
        map.put(getString(R.string.alarm_all_device_bms), "BMS");
        map.put(getString(R.string.alarm_all_device_battery_cell), "BATTERY");
        map.put(getString(R.string.alarm_all_grade), "");//设等级全部
        map.put(getString(R.string.alarm_all_grade_malfunction), "FAULT");
        map.put(getString(R.string.alarm_all_grade_warning), "WARN");
        map.put(getString(R.string.alarm_all_grade_tip), "EVENT");
        map.put(getString(R.string.alarm_all_time), "");//时间全部
        map.put(getString(R.string.alarm_all_time_same_day), "TODAY");
        map.put(getString(R.string.alarm_all_time_3), "LAST_3_DAYS");
        map.put(getString(R.string.alarm_all_time_7), "LAST_7_DAYS");
        map.put(getString(R.string.alarm_all_time_30), "LAST_30_DAYS");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            if (title.equals(entry.getKey())) {
                return entry.getValue();
            }
        }
        return "";
    }
    /**
     * 获取类型列表
     *
     * @param filterType 过滤类型
     * @return 返回类型列表
     */
    private List<String> getTypeList(String filterType) {
        List<String> stringList = new ArrayList<>();
        switch (filterType) {
            case FilterType.deviceType: {
                stringList.add(getString(R.string.alarm_all_device));
                stringList.add(getString(R.string.alarm_all_device_inverter));
                stringList.add(getString(R.string.alarm_all_device_bms));
                stringList.add(getString(R.string.alarm_all_device_battery_cell));
            }
            break;
            case FilterType.type: {
                stringList.add(getString(R.string.alarm_all_grade));
                stringList.add(getString(R.string.alarm_all_grade_malfunction));
                stringList.add(getString(R.string.alarm_all_grade_warning));
                stringList.add(getString(R.string.alarm_all_grade_tip));
            }
            break;
            case FilterType.timeType: {
                stringList.add(getString(R.string.alarm_all_time));
                stringList.add(getString(R.string.alarm_all_time_same_day));
                stringList.add(getString(R.string.alarm_all_time_3));
                stringList.add(getString(R.string.alarm_all_time_7));
                stringList.add(getString(R.string.alarm_all_time_30));
            }
            break;
        }
        return stringList;
    }
}
app/src/main/res/drawable/checked_38c494.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/text_38C494"/>
    <corners android:radius="@dimen/dp_4"/>
</shape>
app/src/main/res/drawable/fillet_line_38c494.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="@dimen/dp_4" />
    <solid android:color="#00000000" />
    <stroke
        android:width="1dp"
        android:color="@color/text_38C494" />
</shape>
app/src/main/res/values/colors.xml
@@ -46,6 +46,7 @@
    <color name="text_EDEFF2">#EDEFF2</color>
    <color name="text_191919">#191919</color>
    <color name="text_B2B2B2">#B2B2B2</color>
    <color name="text_38C494">#38C494</color>
</resources>