| | |
| | | import androidx.recyclerview.widget.RecyclerView; |
| | | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.google.gson.JsonObject; |
| | | import com.hdl.linkpm.sdk.core.exception.HDLException; |
| | | import com.hdl.photovoltaic.R; |
| | |
| | | private int mTotalCount1 = 0;//消息数量总数 |
| | | |
| | | private int mTotalCount2 = 0;//消息数量总数 |
| | | private String mFilterKye = FilterType.all;//过滤类型 |
| | | private String mFilterValue = FilterType.all;//过滤类型值 |
| | | private String mDeviceTypeFilterKye = FilterType.deviceType;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元) |
| | | private String mDeviceTypeFilterValue = FilterType.all;//过滤类型值 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元) |
| | | |
| | | 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天); |
| | | |
| | | |
| | | //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天); |
| | | private boolean isLoadingMore = false; // 标记正在加载更多数据 |
| | | LinearLayoutManager mLayoutManager; |
| | | |
| | |
| | | //初始化界面监听器 |
| | | initEvent(); |
| | | //进来读取一次数据(为了更新currentPage,currentTotal这个值) |
| | | loadNextPageMessageList(1, true, FilterType.all, FilterType.all); |
| | | loadNextPageMessageList(1, true, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | private void initEvent() { |
| | | //返回按钮 |
| | | viewBinding.toolbarTopMessageCenterListRl.topBackBtn.setOnClickListener(new View.OnClickListener() { |
| | | viewBinding.toolbarTopMessageCenterListRl.topBackLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | clearCacheData(); |
| | | HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); |
| | | uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_USERINFO); |
| | | uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER); |
| | | JsonObject jsonObject = new JsonObject(); |
| | | jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); |
| | | uniCallBackBaseBean.setData(jsonObject); |
| | | HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER, uniCallBackBaseBean); |
| | | HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean); |
| | | finish(); |
| | | } |
| | | }); |
| | |
| | | @Override |
| | | public void onSuccess(Boolean obj) { |
| | | hideLoading(); |
| | | loadNextPageMessageList(1, true, mFilterKye, mFilterValue); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | // HdlMessageLogic.getInstance().setAllRead(true); |
| | | // updateListData(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public void onClick(int position, String title) { |
| | | |
| | | viewBinding.allDeviceTitleTv.setText(title); |
| | | mFilterKye = FilterType.deviceType; |
| | | mFilterValue = findFilterValueString(title); |
| | | loadNextPageMessageList(1, true, mFilterKye, mFilterValue); |
| | | mDeviceTypeFilterKye = FilterType.deviceType; |
| | | mDeviceTypeFilterValue = findFilterValueString(title); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | |
| | | } |
| | | }); |
| | |
| | | @Override |
| | | public void onClick(int position, String title) { |
| | | viewBinding.allGradeTitleTv.setText(title); |
| | | mFilterKye = FilterType.type; |
| | | mFilterValue = findFilterValueString(title); |
| | | loadNextPageMessageList(1, true, mFilterKye, mFilterValue); |
| | | mTypeFilterKye = FilterType.type; |
| | | mTypeFilterValue = findFilterValueString(title); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | } |
| | | }); |
| | | } |
| | |
| | | @Override |
| | | public void onClick(int position, String title) { |
| | | viewBinding.allTimeTitleTv.setText(title); |
| | | mFilterKye = FilterType.timeType; |
| | | mFilterValue = findFilterValueString(title); |
| | | loadNextPageMessageList(1, true, mFilterKye, mFilterValue); |
| | | mTimeTypeFilterKye = FilterType.timeType; |
| | | mTimeTypeFilterValue = findFilterValueString(title); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | } |
| | | }); |
| | | } |
| | |
| | | } |
| | | isAlarmDeviceClick = true; |
| | | refreshBottomStyle(true); |
| | | loadNextPageMessageList(1, true, mFilterKye, mFilterValue); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | } |
| | | }); |
| | | //告警记录按钮 |
| | |
| | | } |
| | | isAlarmDeviceClick = false; |
| | | refreshBottomStyle(false); |
| | | loadNextPageMessageList(1, true, mFilterKye, mFilterValue); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | |
| | | } |
| | | }); |
| | |
| | | @Override |
| | | public void onRefresh() { |
| | | viewBinding.messageContentSrl.setRefreshing(false); |
| | | loadNextPageMessageList(1, true, mFilterKye, mFilterValue); |
| | | loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | } |
| | | }); |
| | | //上拉按钮 |
| | |
| | | if (!isLoadingMore) { |
| | | // 滑动到了底部,执行相应的操作 |
| | | HdlLogLogic.print("--->滑动到了底部"); |
| | | loadNextPageMessageList(++mCurrentPage, false, mFilterKye, mFilterValue); |
| | | loadNextPageMessageList(++mCurrentPage, false, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | private void initView() { |
| | | viewBinding.toolbarTopMessageCenterListRl.getRoot().setBackgroundColor(getColor(R.color.text_FFFFFFFF)); |
| | | viewBinding.toolbarTopMessageCenterListRl.topBackBtn.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopMessageCenterListRl.topBackLl.setVisibility(View.VISIBLE); |
| | | viewBinding.toolbarTopMessageCenterListRl.topLeftIv.setImageResource(R.drawable.back_c); |
| | | viewBinding.toolbarTopMessageCenterListRl.topTitleTv.setText(R.string.set_message_center); |
| | | viewBinding.toolbarTopMessageCenterListRl.topMoreBtn.setVisibility(View.VISIBLE); |
| | |
| | | /** |
| | | * 加载一页数据 |
| | | * |
| | | * @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天); |
| | | * @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天); |
| | | */ |
| | | private void loadNextPageMessageList(int pageNo, boolean isShowLoading, String filter_key, String filter_value) { |
| | | private void loadNextPageMessageList(int pageNo, boolean isShowLoading, |
| | | String deviceType_filter_key, String deviceType_filter_value, |
| | | String type_filter_key, String type_filter_value, |
| | | String timeType_filter_key, String timeType_filter_value) { |
| | | if (pageNo == 1) { |
| | | //表示从第一页可以读取,默认清空所有缓存数据; |
| | | clearCacheData(); |
| | |
| | | } 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) { |
| | | mCurrentTotal = (int) messageListClass.getTotalPage(); |
| | | mCurrentPage = (int) messageListClass.getPageNo(); |
| | | int totalCount = (int) messageListClass.getTotalCount(); |
| | | if (isAlarmDeviceClick) { |
| | | mTotalCount1 = totalCount; |
| | | } else { |
| | | mTotalCount2 = totalCount; |
| | | } |
| | | updateListData(); |
| | | } |
| | | isLoadingMore = false; |
| | | if (isShowLoading) { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | if (mCurrentPage > 1) { |
| | | --mCurrentPage; |
| | | } |
| | | isLoadingMore = false; |
| | | if (isShowLoading) { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 读取消息【未读数量】 |
| | | */ |
| | | private void getUnreadCount() { |
| | | HdlMessageLogic.getInstance().getMessageUntreatedCount(new CloudCallBeak<String>() { |
| | | @Override |
| | | public void onSuccess(String data) { |
| | | |
| | | HdlThreadLogic.runMainThread(new Runnable() { |
| | | HdlMessageLogic.getInstance().getPageNoMessageList(UserConfigManage.getInstance().getHomeId(), 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 run() { |
| | | JSONObject jsonObject = JSON.parseObject(data); |
| | | if (jsonObject.containsKey("untreatedCount")) { |
| | | //未处理数量 |
| | | String untreatedCount = jsonObject.getString("untreatedCount"); |
| | | refreshCount(); |
| | | public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) { |
| | | if (messageListClass != null) { |
| | | mCurrentTotal = (int) messageListClass.getTotalPage(); |
| | | mCurrentPage = (int) messageListClass.getPageNo(); |
| | | int totalCount = (int) messageListClass.getTotalCount(); |
| | | if (isAlarmDeviceClick) { |
| | | mTotalCount1 = totalCount; |
| | | } else { |
| | | mTotalCount2 = totalCount; |
| | | } |
| | | updateListData(); |
| | | } |
| | | if (jsonObject.containsKey("unreadCount")) { |
| | | //未读数量 |
| | | String unreadCount = jsonObject.getString("unreadCount"); |
| | | isLoadingMore = false; |
| | | if (isShowLoading) { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | if (mCurrentPage > 1) { |
| | | --mCurrentPage; |
| | | } |
| | | isLoadingMore = false; |
| | | if (isShowLoading) { |
| | | hideLoading(); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | 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 updateCacheData() { |
| | | mList.clear(); |
| | | mList.addAll(HdlMessageLogic.getInstance().getAllMessageList()); |
| | | if (isAlarmDeviceClick) { |
| | | //设备报警 |
| | | mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList()); |
| | | } else { |
| | | //报警记录 |
| | | mList.addAll(HdlMessageLogic.getInstance().getRecoverMessageMemoryList()); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | return stringList; |
| | | } |
| | | |
| | | /** |
| | | * 物理按键返回事件 |
| | | */ |
| | | @Override |
| | | public void onBackPressed() { |
| | | clearCacheData(); |
| | | HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); |
| | | uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER); |
| | | JsonObject jsonObject = new JsonObject(); |
| | | jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); |
| | | uniCallBackBaseBean.setData(jsonObject); |
| | | HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean); |
| | | super.onBackPressed(); |
| | | } |
| | | } |