package com.hdl.photovoltaic.ui.message;
|
|
import android.annotation.SuppressLint;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.os.AsyncTask;
|
import android.os.Bundle;
|
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.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.FragmentMessageBinding;
|
import com.hdl.photovoltaic.enums.FilterType;
|
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
|
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.adapter.MessageAdapter;
|
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.photovoltaic.widget.refreshlayout.BGARefreshLayout;
|
import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
|
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
|
|
import org.greenrobot.eventbus.EventBus;
|
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;
|
|
/**
|
* 消息模块界面
|
*/
|
public class MessageFragment extends CustomBaseFragment {
|
|
private FragmentMessageBinding viewBinding;
|
|
private MessageAdapter mMessageAdapter;
|
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 :电池单元;"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 :事件(提示));
|
|
private String mTimeTypeFilterKye = FilterType.all;//过滤类型 timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
|
private String mTimeTypeFilterValue = FilterType.all;//过滤类型值 timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
|
|
|
private boolean isLoadingMore = false; // 标记正在加载更多数据
|
|
@Override
|
public Object getContentView() {
|
viewBinding = FragmentMessageBinding.inflate(getLayoutInflater());
|
return viewBinding.getRoot();
|
}
|
|
@Override
|
public void onBindView(Bundle savedInstanceState) {
|
//初始化界面
|
initView();
|
//初始化监听器
|
initEvent();
|
//初始化数据
|
initData();
|
|
}
|
|
private void initEvent() {
|
|
|
//发生中
|
viewBinding.messageTabNascentTitleTv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
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;
|
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);
|
}
|
});
|
//报警记录
|
viewBinding.messageTabRecoverTitleTv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
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;
|
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);
|
}
|
});
|
//搜索消息
|
viewBinding.messageSearchCl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
String messageStateType;
|
if (isAlarmDeviceClick) {
|
messageStateType = MessageStateType.untreated;
|
} else {
|
messageStateType = MessageStateType.processed;
|
}
|
Intent intent = new Intent();
|
intent.putExtra("MessageStateType", messageStateType);
|
intent.setClass(_mActivity, SearchMessageActivity.class);
|
startActivity(intent);
|
}
|
});
|
|
//清空所有未读按钮
|
viewBinding.allClearIv.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// showLoading();
|
HdlMessageLogic.getInstance().messageAllRead("", new CloudCallBeak<Boolean>() {
|
@Override
|
public void onSuccess(Boolean obj) {
|
// hideLoading();
|
loadNextPageMessageList(true, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
// hideLoading();
|
HdlThreadLogic.toast(_mActivity, e);
|
}
|
});
|
}
|
});
|
|
//全部设备(全部设备、逆变器、BMS控制盒、电池单元)按钮
|
viewBinding.messageTabAllDeviceCl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.up);
|
viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
|
viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
|
setTypeTitleListDialog(viewBinding.allDeviceTitleTv, FilterType.deviceType, getTypeList(FilterType.deviceType));
|
|
}
|
});
|
//全部等级(故障、警告、提示)按钮
|
viewBinding.messageTabAllGradeCl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
|
viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.up);
|
viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.down);
|
setTypeTitleListDialog(viewBinding.allGradeTitleTv, FilterType.type, getTypeList(FilterType.type));
|
|
}
|
});
|
//全部时间(当天、近3天、近7天、近30天)按钮
|
viewBinding.messageTabAllTimeCl.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
viewBinding.allDeviceTitleIv.setBackgroundResource(R.drawable.down);
|
viewBinding.allGradeTitleIv.setBackgroundResource(R.drawable.down);
|
viewBinding.allTimeTitleIv.setBackgroundResource(R.drawable.up);
|
setTypeTitleListDialog(viewBinding.allTimeTitleTv, FilterType.timeType, getTypeList(FilterType.timeType));
|
}
|
});
|
if (mMessageAdapter != null) {
|
mMessageAdapter.setOnclickListener(new MessageAdapter.OnClickListener() {
|
@Override
|
public void onClick(int position, MessageBean messageBean) {
|
Intent intent = new Intent();
|
intent.putExtra("messageBean", new Gson().toJson(messageBean));
|
intent.setClass(_mActivity, MessageInfoActivity.class);
|
startActivity(intent);
|
}
|
});
|
|
}
|
}
|
|
/**
|
* 类型筛选
|
*
|
* @param textView 组件显示
|
* @param filterType 过滤类型
|
* @param stringList 过滤类型值表
|
*/
|
private void setTypeTitleListDialog(TextView textView, String filterType, List<String> stringList) {
|
BTypeTitleListDialog typeTitleListDialog = new BTypeTitleListDialog(_mActivity, stringList, textView.getText().toString());
|
typeTitleListDialog.show();
|
typeTitleListDialog.setOnListener(new BTypeTitleListDialog.OnClickListener() {
|
@Override
|
public void onClick(int position, String title) {
|
textView.setText(title);
|
switch (filterType) {
|
case FilterType.deviceType: {
|
mDeviceTypeFilterKye = filterType;
|
mDeviceTypeFilterValue = findFilterValueString(title);
|
}
|
break;
|
case FilterType.type: {
|
mTypeFilterKye = filterType;
|
mTypeFilterValue = findFilterValueString(title);
|
}
|
break;
|
case FilterType.timeType: {
|
mTimeTypeFilterKye = filterType;
|
mTimeTypeFilterValue = findFilterValueString(title);
|
}
|
break;
|
}
|
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.Text18Style);
|
viewBinding.messageTabRecoverTitleTv.setTextAppearance(R.style.Text14Style);
|
} else {
|
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);
|
pullToRefresh();
|
}
|
|
/**
|
* 下拉刷新的逻辑
|
*/
|
protected void pullToRefresh() {
|
viewBinding.messageSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() {
|
@Override
|
public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) {
|
new AsyncTask<Void, Void, Void>() {
|
|
@Override
|
protected Void doInBackground(Void... params) {
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
@Override
|
protected void onPostExecute(Void aVoid) {
|
// 执行任务(如更新UI、跳转等)
|
viewBinding.messageSrl.endRefreshing();
|
loadNextPageMessageList(false, 1, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, true);
|
|
}
|
}.execute();
|
|
|
}
|
|
|
@Override
|
public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) {
|
new AsyncTask<Void, Void, Void>() {
|
@Override
|
protected Void doInBackground(Void... params) {
|
try {
|
Thread.sleep(10);
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
@Override
|
protected void onPostExecute(Void aVoid) {
|
viewBinding.messageSrl.endLoadingMore();
|
//加载最新数据完成
|
if (!isLoadingMore) {
|
// 滑动到了底部,执行相应的操作
|
loadNextPageMessageList(false, ++mCurrentPage, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue, false);
|
}
|
}
|
}.execute();
|
return true;
|
}
|
});
|
HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true);
|
hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44);
|
hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh);
|
hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end);
|
viewBinding.messageSrl.setRefreshViewHolder(hdlRefreshViewHolder);
|
}
|
|
|
private void initData() {
|
//进来读取一次数据(为了更新currentPage,currentTotal这个值),app启动时候读取,为了刷新消息模块的角标
|
loadNextPageMessageList(true, 1, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, true);
|
}
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
|
public void onEventMessage(BaseEventBus eventBus) {
|
super.onEventMessage(eventBus);
|
if (eventBus == null) {
|
return;
|
}
|
//接收外部点击事件
|
if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
|
if (eventBus.getType().equals(HomepageTitleTabSwitch.message.toString())) {
|
// 取消粘性事件
|
EventBus.getDefault().removeStickyEvent(eventBus);
|
//进来读取一次数据(为了更新currentPage,currentTotal这个值)
|
// initData();
|
HdlLogLogic.print("正在点击【消息】");
|
|
}
|
} else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
|
if (eventBus.getType().equals(MessageStateType.untreated)) {
|
updateListData();
|
}/* else if (eventBus.getType().equals(MessageStateType.processed)) {
|
updateListData();
|
}*/
|
}
|
}
|
|
/**
|
* 加载一页数据
|
*
|
* @param pageNo 页数
|
* @param isShowLoading 是否启动加载框 true启动
|
* @param deviceType_filter_key 类型(设备,等级,时间)
|
* @param deviceType_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 isClear true表示清空缓存
|
*/
|
private void loadNextPageMessageList(
|
|
boolean isShowLoading,
|
int pageNo,
|
String deviceType_filter_key,
|
String deviceType_filter_value,
|
String type_filter_key,
|
String type_filter_value,
|
String timeType_filter_key,
|
String timeType_filter_value,
|
boolean isClear) {
|
if (isClear) {
|
//表示从第一页可以读取,默认清空所有缓存数据;
|
clearCacheData();
|
}
|
//第一页读取数据强制读
|
if (pageNo > 1 && mCurrentPage > mCurrentTotal) {
|
--mCurrentPage;
|
//当前页不能大于总页数
|
return;
|
}
|
isLoadingMore = true;//标记读取状态
|
if (isShowLoading) {
|
showLoading();
|
}
|
String messageStateType;
|
if (isAlarmDeviceClick) {
|
messageStateType = MessageStateType.untreated;
|
} else {
|
messageStateType = MessageStateType.processed;
|
}
|
HdlMessageLogic.getInstance().getPageNoMessageList("", pageNo, messageStateType, deviceType_filter_key, deviceType_filter_value, type_filter_key, type_filter_value, timeType_filter_key, timeType_filter_value, "", new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
|
@Override
|
public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
|
if (messageListClass != null) {
|
mCurrentTotal = (int) messageListClass.getTotalPage();
|
mCurrentPage = (int) messageListClass.getPageNo();
|
mTotalCount = (int) messageListClass.getTotalCount();
|
updateListData();
|
}
|
isLoadingMore = false;
|
if (isShowLoading) {
|
hideLoading();
|
}
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
if (mCurrentPage > 1) {
|
--mCurrentPage;
|
}
|
isLoadingMore = false;
|
if (isShowLoading) {
|
hideLoading();
|
}
|
HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
|
}
|
});
|
|
|
}
|
|
/**
|
* 刷新列表数据
|
*/
|
private void updateListData() {
|
HdlThreadLogic.runMainThread(new Runnable() {
|
@Override
|
public void run() {
|
//读取缓存数据
|
updateCacheData();
|
//刷新列表
|
updateRecyclerViewList();
|
//显示未读信息总数量
|
getUnreadCount();
|
if (isAlarmDeviceClick) {
|
refreshNascentTotalCount(mTotalCount);
|
} else {
|
refreshRecoverTotalCount(mTotalCount);
|
}
|
//显示没数据Ui样式
|
nullDataUpdateUi();
|
|
|
}
|
});
|
}
|
|
/**
|
* 刷新发送中消息总数量
|
*
|
* @param nascentTotalCount 发送中消息总数量
|
*/
|
private void refreshNascentTotalCount(int nascentTotalCount) {
|
HdlThreadLogic.runMainThread(new Runnable() {
|
@Override
|
public void run() {
|
//设备报警总数量
|
TextView nascentTv = _mActivity.findViewById(R.id.message_tab_nascent_title_tv);
|
if (nascentTv != null) {
|
nascentTv.setText(getText(R.string.message_nascent));
|
if (nascentTotalCount > 0) {
|
String s = getText(R.string.message_nascent) + "(" + nascentTotalCount + ")";
|
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) {
|
recoverTV.setText(getText(R.string.alarm_record));
|
if (recoverTotalCount > 0) {
|
String s = getText(R.string.alarm_record) + "(" + recoverTotalCount + ")";
|
recoverTV.setText(s);
|
}
|
}
|
}
|
});
|
|
}
|
|
/**
|
* 刷新【消息模块】下角标数值
|
*
|
* @param unreadCount 未读信息数量总数
|
*/
|
private void refreshUnreadCount(int 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 (unreadCount == 0) {
|
textView.setVisibility(View.GONE);
|
} else {
|
textView.setVisibility(View.VISIBLE);
|
if (unreadCount > 99) {
|
textView.setText("99+");
|
} else {
|
textView.setText(unreadCount + "");
|
}
|
}
|
}
|
}
|
});
|
}
|
|
/**
|
* 重新更新列表数据
|
*/
|
private void updateRecyclerViewList() {
|
if (mMessageAdapter == null) {
|
return;
|
}
|
mMessageAdapter.setList(mList);
|
}
|
|
/**
|
* 清空所有缓存数据(获取第一页之前要清空所有缓存数据)
|
*/
|
private void clearCacheData() {
|
mList.clear();
|
HdlMessageLogic.getInstance().clearListMessage();//表示强制清空所有缓存信息
|
}
|
|
/**
|
* 更新缓存数据
|
*/
|
private void updateCacheData() {
|
mList.clear();
|
if (isAlarmDeviceClick) {
|
//设备报警
|
mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
|
} else {
|
//报警记录
|
mList.addAll(HdlMessageLogic.getInstance().getRecoverMessageMemoryList());
|
}
|
}
|
|
/**
|
* 读取消息【未读数量,未处理总数量,已处理总数量】
|
*/
|
private void getUnreadCount() {
|
HdlMessageLogic.getInstance().getMessageUntreatedCount("", new CloudCallBeak<UnCountBean>() {
|
@Override
|
public void onSuccess(UnCountBean unCountBean) {
|
|
HdlThreadLogic.runMainThread(new Runnable() {
|
@Override
|
public void run() {
|
if (unCountBean == null) {
|
return;
|
}
|
refreshUnreadCount(unCountBean.getUnreadCount());
|
// if (isRefreshTotalCount) {
|
// isRefreshTotalCount = false;
|
refreshNascentTotalCount(unCountBean.getUntreatedCount());
|
refreshRecoverTotalCount(unCountBean.getProcessedCount());
|
// }
|
}
|
|
});
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
HdlThreadLogic.runMainThread(new Runnable() {
|
@Override
|
public void run() {
|
TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
|
if (textView != null) {
|
textView.setVisibility(View.GONE);
|
}
|
}
|
});
|
}
|
});
|
}
|
|
|
/**
|
* 没有消息列表的样式
|
*/
|
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_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");
|
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));
|
stringList.add(getString(R.string.alarm_all_device_load_centre));
|
}
|
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;
|
}
|
}
|