wjc
2025-04-15 cdf49871675e42a5576f725a93eec7ca15294c6f
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
@@ -1,6 +1,7 @@
package com.hdl.photovoltaic.ui.message;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
@@ -30,6 +31,7 @@
import com.hdl.photovoltaic.ui.bean.MessageBean;
import com.hdl.photovoltaic.ui.bean.UnCountBean;
import com.hdl.photovoltaic.widget.BTypeTitleListDialog;
import com.hdl.photovoltaic.widget.TypeTitleListDialog;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import org.greenrobot.eventbus.EventBus;
@@ -52,10 +54,13 @@
    private boolean isAlarmDeviceClick = true;//true表示告警设备被选中,则false表示报警记录被选中
    private final List<MessageBean> mList = new ArrayList<>();
    private boolean isRefreshTotalCount = true;
    private int mTotalCount = 0; //总条数
    private int mCurrentPage = 0; // 当前页码
    private int mCurrentTotal = 0; // 总页码
    private String mDeviceTypeFilterKye = FilterType.deviceType;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元)
    private String mDeviceTypeFilterValue = FilterType.all;//过滤类型值 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元)
    private String mDeviceTypeFilterKye = FilterType.deviceType;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元;"LOAD_CENTRE":负载控制中心)
    private String mDeviceTypeFilterValue = FilterType.all;//过滤类型值 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元;"LOAD_CENTRE":负载控制中心
    private String mTypeFilterKye = FilterType.all;//过滤类型 type(FAULT :故障; WARN :告警; EVENT :事件(提示));
    private String mTypeFilterValue = FilterType.all;//过滤类型值 type(FAULT :故障; WARN :告警; EVENT :事件(提示));
@@ -93,10 +98,20 @@
                if (isAlarmDeviceClick) {
                    return;
                }
                mDeviceTypeFilterKye = FilterType.deviceType;
                mDeviceTypeFilterValue = FilterType.all;
                mTypeFilterKye = FilterType.all;
                mTypeFilterValue = FilterType.all;
                mTimeTypeFilterKye = FilterType.all;
                mTimeTypeFilterValue = FilterType.all;
                viewBinding.allDeviceTitleTv.setText(getString(R.string.alarm_all_device));
                viewBinding.allGradeTitleTv.setText(getString(R.string.alarm_all_grade));
                viewBinding.allTimeTitleTv.setText(getString(R.string.alarm_all_time));
                isAlarmDeviceClick = true;
                viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text20Style);
                viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text16Style);
                viewBinding.allClearTv.setVisibility(View.VISIBLE);
                isRefreshTotalCount = true;
                viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text18Style);
                viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text14Style);
                viewBinding.allClearIv.setVisibility(View.VISIBLE);
                loadNextPageMessageList(true, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
            }
        });
@@ -107,10 +122,20 @@
                if (!isAlarmDeviceClick) {
                    return;
                }
                mDeviceTypeFilterKye = FilterType.deviceType;
                mDeviceTypeFilterValue = FilterType.all;
                mTypeFilterKye = FilterType.all;
                mTypeFilterValue = FilterType.all;
                mTimeTypeFilterKye = FilterType.all;
                mTimeTypeFilterValue = FilterType.all;
                viewBinding.allDeviceTitleTv.setText(getString(R.string.alarm_all_device));
                viewBinding.allGradeTitleTv.setText(getString(R.string.alarm_all_grade));
                viewBinding.allTimeTitleTv.setText(getString(R.string.alarm_all_time));
                isAlarmDeviceClick = false;
                viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text16Style);
                viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text20Style);
                viewBinding.allClearTv.setVisibility(View.GONE);
                isRefreshTotalCount = true;
                viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text14Style);
                viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text18Style);
                viewBinding.allClearIv.setVisibility(View.GONE);
                loadNextPageMessageList(true, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
            }
        });
@@ -132,7 +157,7 @@
        });
        //清空所有未读按钮
        viewBinding.allClearTv.setOnClickListener(new View.OnClickListener() {
        viewBinding.allClearIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showLoading();
@@ -221,7 +246,7 @@
                @Override
                public void onClick(int position, MessageBean messageBean) {
                    Intent intent = new Intent();
                    intent.putExtra("messageBean",new Gson().toJson(messageBean));
                    intent.putExtra("messageBean", new Gson().toJson(messageBean));
                    intent.setClass(_mActivity, MessageInfoActivity.class);
                    startActivity(intent);
                }
@@ -238,7 +263,7 @@
     * @param stringList 过滤类型值表
     */
    private void setTypeTitleListDialog(TextView textView, String filterType, List<String> stringList) {
        BTypeTitleListDialog typeTitleListDialog = new BTypeTitleListDialog(_mActivity, stringList);
        BTypeTitleListDialog typeTitleListDialog = new BTypeTitleListDialog(_mActivity, stringList, textView.getText().toString());
        typeTitleListDialog.show();
        typeTitleListDialog.setOnListener(new BTypeTitleListDialog.OnClickListener() {
            @Override
@@ -264,18 +289,27 @@
                loadNextPageMessageList(true, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
            }
        });
        typeTitleListDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
                viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
                viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
            }
        });
    }
    private void initView() {
        if (isAlarmDeviceClick) {
            viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text20Style);
            viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text16Style);
            viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text18Style);
            viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text14Style);
        } else {
            viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text16Style);
            viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text20Style);
            viewBinding.messageTabNascentTitleTv.setTextAppearance(R.style.Text18Style);
            viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text14Style);
        }
//        viewBinding..topMoreBtn.setVisibility(View.VISIBLE);
//        viewBinding.toolbarTopMessageCenterListRl.topMoreIv.setImageResource(R.drawable.clearall);
        mMessageAdapter = new MessageAdapter(_mActivity);
        viewBinding.messageRcv.setLayoutManager(new LinearLayoutManager(_mActivity));
        viewBinding.messageRcv.setAdapter(mMessageAdapter);
@@ -360,6 +394,7 @@
                if (messageListClass != null) {
                    mCurrentTotal = (int) messageListClass.getTotalPage();
                    mCurrentPage = (int) messageListClass.getPageNo();
                    mTotalCount = (int) messageListClass.getTotalCount();
                    updateListData();
                }
                isLoadingMore = false;
@@ -377,6 +412,7 @@
                if (isShowLoading) {
                    hideLoading();
                }
                HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
            }
        });
@@ -396,20 +432,25 @@
                updateRecyclerViewList();
                //显示未读信息总数量
                getUnreadCount();
                if (isAlarmDeviceClick) {
                    refreshNascentTotalCount(mTotalCount);
                } else {
                    refreshRecoverTotalCount(mTotalCount);
                }
                //显示没数据Ui样式
                nullDataUpdateUi();
            }
        });
    }
    /**
     * 刷新信息数量总数
     * 刷新发送中消息总数量
     *
     * @param nascentTotalCount 发送中消息总数量
     * @param recoverTotalCount 报警记录消息总数量
     */
    private void refreshAascentAndRecoverTotalCount(int nascentTotalCount, int recoverTotalCount) {
    private void refreshNascentTotalCount(int nascentTotalCount) {
        HdlThreadLogic.runMainThread(new Runnable() {
            @Override
            public void run() {
@@ -422,6 +463,20 @@
                        nascentTv.setText(s);
                    }
                }
            }
        });
    }
    /**
     * 刷新报警记录消息总数量
     *
     * @param recoverTotalCount 报警记录消息总数量
     */
    private void refreshRecoverTotalCount(int recoverTotalCount) {
        HdlThreadLogic.runMainThread(new Runnable() {
            @Override
            public void run() {
                //报警记录总数量
                TextView recoverTV = _mActivity.findViewById(R.id.message_tab_recover_title_tv);
                if (recoverTV != null) {
@@ -509,8 +564,12 @@
                        if (unCountBean == null) {
                            return;
                        }
                        refreshAascentAndRecoverTotalCount(unCountBean.getUntreatedCount(), unCountBean.getProcessedCount());
                        refreshUnreadCount(unCountBean.getUnreadCount());
                        if (isRefreshTotalCount) {
                            isRefreshTotalCount = false;
                            refreshNascentTotalCount(unCountBean.getUntreatedCount());
                            refreshRecoverTotalCount(unCountBean.getProcessedCount());
                        }
                    }
                });
@@ -551,6 +610,7 @@
        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_device_load_centre), "LOAD_CENTRE");
        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");
@@ -583,6 +643,7 @@
                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));
                stringList.add(getString(R.string.alarm_all_device_load_centre));
            }
            break;
            case FilterType.type: {