| | |
| | | package com.hdl.photovoltaic.ui.message; |
| | | |
| | | |
| | | import android.graphics.drawable.Drawable; |
| | | import android.os.Bundle; |
| | | import android.view.View; |
| | | import android.widget.TextView; |
| | | |
| | | import androidx.appcompat.content.res.AppCompatResources; |
| | | |
| | | import com.google.gson.Gson; |
| | | 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.ActivityMessageInfoBinding; |
| | | import com.hdl.photovoltaic.enums.MessageAlarmStateType; |
| | | 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.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; |
| | | |
| | | /** |
| | | * 消息详情 |
| | | */ |
| | | public class MessageInfoActivity extends CustomBaseActivity { |
| | | |
| | | ActivityMessageInfoBinding viewBinding; |
| | | |
| | | private MessageBean mMessageBean; |
| | | |
| | | |
| | | @Override |
| | | public Object getContentView() { |
| | |
| | | |
| | | @Override |
| | | public void onBindView(Bundle savedInstanceState) { |
| | | setNotificationBarBackgroundColor(CustomColor.white); |
| | | setStatusBarTextColor(); |
| | | try { |
| | | String json = getIntent().getStringExtra("messageBean"); |
| | | mMessageBean = new Gson().fromJson(json, MessageBean.class); |
| | | if (mMessageBean == null) { |
| | | mMessageBean = new MessageBean(); |
| | | } |
| | | } catch (Exception ignored) { |
| | | } |
| | | |
| | | //初始化 |
| | | initView(); |
| | | //初始化界面监听器 |
| | | initEvent(); |
| | | //读取数据 |
| | | readData(); |
| | | } |
| | | |
| | | private void readData() { |
| | | |
| | | // showLoading(); |
| | | HdlMessageLogic.getInstance().getMessageInfo(mMessageBean.getMsgId().toString(), new CloudCallBeak<MessageBean>() { |
| | | @Override |
| | | public void onSuccess(MessageBean msg) { |
| | | HdlThreadLogic.runMainThread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | // hideLoading(); |
| | | if (msg == null) { |
| | | return; |
| | | } |
| | | mMessageBean = msg; |
| | | |
| | | viewBinding.messageInfoHomeNameTv.setText(mMessageBean.getHomeName()); |
| | | viewBinding.messageInfoAlarmContentIn.rightContentTv.setText(mMessageBean.getTitle()); |
| | | viewBinding.messageInfoAlarmDeviceIn.rightContentTv.setText(mMessageBean.getDeviceDesc()); |
| | | viewBinding.messageInfoAlarmRangeIn.rightContentTv.setText(mMessageBean.getEffectScopeDesc()); |
| | | viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(mMessageBean.getLocationAddress()); |
| | | String date = TimeUtils.getTimeFromTimestamp(mMessageBean.getCreateTime()); |
| | | viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(date); |
| | | stateStyle(viewBinding.messageInfoAlarmStateTv); |
| | | |
| | | if (mMessageBean.getStatus().equals(MessageStateType.processed)) { |
| | | //已经解决掉的隐藏 |
| | | viewBinding.messageInfoBackTv.setVisibility(View.GONE); |
| | | viewBinding.messageInfoSolveTv.setVisibility(View.GONE); |
| | | } else { |
| | | if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { |
| | | return; |
| | | } |
| | | viewBinding.messageInfoBackTv.setVisibility(View.GONE); |
| | | viewBinding.messageInfoSolveTv.setVisibility(View.GONE); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | // hideLoading(); |
| | | HdlThreadLogic.toast(_mActivity, e); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | private void initEvent() { |
| | | //后退的事件 |
| | | viewBinding.toolbarTopIn.topBackLl.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | if (mMessageBean == null) { |
| | | finish(); |
| | | return; |
| | | } |
| | | //未处理 |
| | | if (mMessageBean.getStatus().equals(MessageStateType.untreated)) { |
| | | //改变缓存状态 |
| | | if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { |
| | | HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated); |
| | | //通知未处理要更新数据 |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated); |
| | | } else { |
| | | //除“故障”外,其他等级信息“已读”后,自动移出“发生中”列表并加入“历史记录”列表 |
| | | HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed); |
| | | sendEventBus(); |
| | | } |
| | | |
| | | } |
| | | finish(); |
| | | } |
| | | }); |
| | | //返回的事件 |
| | | viewBinding.messageInfoBackTv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | if (mMessageBean == null) { |
| | | finish(); |
| | | return; |
| | | } |
| | | //未处理 |
| | | if (mMessageBean.getStatus().equals(MessageStateType.untreated)) { |
| | | //改变缓存状态 |
| | | if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { |
| | | HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated); |
| | | //通知未处理要更新数据 |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated); |
| | | } else { |
| | | //除“故障”外,其他等级信息“已读”后,自动移出“发生中”列表并加入“历史记录”列表 |
| | | HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed); |
| | | sendEventBus(); |
| | | } |
| | | } |
| | | finish(); |
| | | } |
| | | }); |
| | | |
| | | //已处理的事件 |
| | | viewBinding.messageInfoSolveTv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | HdlMessageLogic.getInstance().getMessageMessageSolve(mMessageBean.getMsgId().toString(), new CloudCallBeak<Boolean>() { |
| | | @Override |
| | | public void onSuccess(Boolean obj) { |
| | | if (mMessageBean == null) { |
| | | return; |
| | | } |
| | | //未处理 |
| | | if (mMessageBean.getStatus().equals(MessageStateType.untreated)) { |
| | | HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed); |
| | | sendEventBus(); |
| | | } |
| | | finish(); |
| | | } |
| | | |
| | | @Override |
| | | public void onFailure(HDLException e) { |
| | | HdlThreadLogic.toast(_mActivity, e); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 通知出去外面更新数据 |
| | | */ |
| | | private void sendEventBus() { |
| | | //通知已处理要更新数据 |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.processed); |
| | | //通知未处理要更新数据 |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated); |
| | | } |
| | | |
| | | |
| | | private void initView() { |
| | | |
| | | viewBinding.toolbarTopIn.topTitleTv.setText(R.string.message_alarm_info); |
| | | viewBinding.toolbarTopIn.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null)); |
| | | viewBinding.toolbarTopIn.topBackLl.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); |
| | | viewBinding.messageInfoPowerStationLocationIn.leftTitleTv.setText(R.string.message_alarm_detailspower_station_location); |
| | | viewBinding.messageInfoAlarmTimeIn.leftTitleTv.setText(R.string.message_alarm_details_time); |
| | | |
| | | viewBinding.messageInfoHomeNameTv.setText(mMessageBean.getHomeName()); |
| | | viewBinding.messageInfoAlarmContentIn.rightContentTv.setText(mMessageBean.getTitle()); |
| | | viewBinding.messageInfoAlarmDeviceIn.rightContentTv.setText(mMessageBean.getDeviceDesc()); |
| | | viewBinding.messageInfoAlarmRangeIn.rightContentTv.setText(mMessageBean.getEffectScopeDesc()); |
| | | viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(mMessageBean.getLocationAddress()); |
| | | String date = TimeUtils.getTimeFromTimestamp(mMessageBean.getCreateTime()); |
| | | viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(date); |
| | | stateStyle(viewBinding.messageInfoAlarmStateTv); |
| | | |
| | | |
| | | if (mMessageBean.getStatus().equals(MessageStateType.processed)) { |
| | | //已经解决掉的隐藏 |
| | | viewBinding.messageInfoBackTv.setVisibility(View.GONE); |
| | | viewBinding.messageInfoSolveTv.setVisibility(View.GONE); |
| | | } else { |
| | | if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { |
| | | return; |
| | | } |
| | | viewBinding.messageInfoBackTv.setVisibility(View.GONE); |
| | | viewBinding.messageInfoSolveTv.setVisibility(View.GONE); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 状态样式 |
| | | * |
| | | * @param textView 组件 |
| | | */ |
| | | private void stateStyle(TextView textView) { |
| | | String type = "";//FAULT:故障,WARN:告警,EVENT:事件 |
| | | Drawable drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300); |
| | | 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(MessageAlarmStateType.warn)) { |
| | | type = _mActivity.getString(R.string.message_alarm); |
| | | drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300); |
| | | } else if (mMessageBean.getType().equals(MessageAlarmStateType.event)) { |
| | | type = _mActivity.getString(R.string.loading_title_tip); |
| | | drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.state_b9b9b9); |
| | | } |
| | | textView.setText(type); |
| | | textView.setBackground(drawable); |
| | | } |
| | | |
| | | @Override |
| | | public void onBackPressed() { |
| | | super.onBackPressed(); |
| | | if (mMessageBean == null) { |
| | | return; |
| | | } |
| | | //未处理 |
| | | if (mMessageBean.getStatus().equals(MessageStateType.untreated)) { |
| | | //改变缓存状态 |
| | | if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { |
| | | HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated); |
| | | //通知未处理要更新数据 |
| | | HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated); |
| | | } else { |
| | | //除“故障”外,其他等级信息“已读”后,自动移出“发生中”列表并加入“历史记录”列表 |
| | | HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed); |
| | | sendEventBus(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |