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() { viewBinding = ActivityMessageInfoBinding.inflate(getLayoutInflater()); return viewBinding.getRoot(); } @Override public void onBindView(Bundle savedInstanceState) { setStatusBarTranslucent(); 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() { @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.toolbarTopRl.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() { @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.toolbarTopRl.topTitleTv.setText(R.string.message_alarm_info); viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE); 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.untreated) && mMessageBean.getType().equals(MessageAlarmStateType.fault)) { //发生中的消息且是故障才要显示 viewBinding.messageInfoWorkOut.setVisibility(View.VISIBLE); } } /** * 状态样式 * * @param textView 组件 */ private void stateStyle(TextView textView) { String type = "";//FAULT:故障,WARN:告警,EVENT:事件 Drawable drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.device_satte_ffb300); if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { type = _mActivity.getString(R.string.my_power_station_malfunction); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.device_state_fff55252); } else if (mMessageBean.getType().equals(MessageAlarmStateType.warn)) { type = _mActivity.getString(R.string.message_alarm); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.device_satte_ffb300); } else if (mMessageBean.getType().equals(MessageAlarmStateType.event)) { type = _mActivity.getString(R.string.loading_title_tip); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.device_state_ffb9b9b9); } 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(); } } } }