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<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.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<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.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();
|
}
|
|
}
|
}
|
}
|