From fa1a77e3f95e5789c01a6dd542ac24e53b9515af Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期六, 22 六月 2024 09:14:54 +0800
Subject: [PATCH] 2024年06月22日09:14:46

---
 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java |  128 ++++++++++++++++++++++++++++--------------
 1 files changed, 84 insertions(+), 44 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
index 2085582..63ab6ef 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
@@ -4,9 +4,11 @@
 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;
@@ -16,6 +18,7 @@
 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;
@@ -33,8 +36,6 @@
 
     private MessageBean mMessageBean;
 
-    private String mMsgId;
-    private String mMessageStateType;
 
     @Override
     public Object getContentView() {
@@ -47,8 +48,11 @@
         setNotificationBarBackgroundColor(CustomColor.white);
         setStatusBarTextColor();
         try {
-            mMsgId = getIntent().getStringExtra("msgId");
-            mMessageStateType = getIntent().getStringExtra("messageStateType");
+            String json = getIntent().getStringExtra("messageBean");
+            mMessageBean = new Gson().fromJson(json, MessageBean.class);
+            if (mMessageBean == null) {
+                mMessageBean = new MessageBean();
+            }
         } catch (Exception ignored) {
         }
 
@@ -63,7 +67,7 @@
     private void readData() {
 
 //        showLoading();
-        HdlMessageLogic.getInstance().getMessageInfo(mMsgId, new CloudCallBeak<MessageBean>() {
+        HdlMessageLogic.getInstance().getMessageInfo(mMessageBean.getMsgId().toString(), new CloudCallBeak<MessageBean>() {
             @Override
             public void onSuccess(MessageBean msg) {
                 HdlThreadLogic.runMainThread(new Runnable() {
@@ -82,24 +86,16 @@
                         viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(mMessageBean.getLocationAddress());
                         String date = TimeUtils.getTimeFromTimestamp(mMessageBean.getCreateTime());
                         viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(date);
-
-                        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);
-                        }
-                        viewBinding.messageInfoAlarmStateTv.setText(type);
-                        viewBinding.messageInfoAlarmStateTv.setBackground(drawable);
+                        stateStyle(viewBinding.messageInfoAlarmStateTv);
 
                         if (mMessageBean.getStatus().equals(MessageStateType.processed)) {
                             //宸茬粡瑙e喅鎺夌殑闅愯棌
+                            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);
                         }
@@ -126,14 +122,11 @@
                 }
                 //鏈鐞�
                 if (mMessageBean.getStatus().equals(MessageStateType.untreated)) {
-
                     //鏀瑰彉缂撳瓨鐘舵��
                     if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) {
                         HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated);
-                        BaseEventBus baseEventBus = new BaseEventBus();
-                        baseEventBus.setTopic(ConstantManage.message_function_push_post);
-                        baseEventBus.setType(MessageStateType.untreated);
-                        EventBus.getDefault().post(baseEventBus);
+                        //閫氱煡鏈鐞嗚鏇存柊鏁版嵁
+                        HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated);
                     } else {
                         //闄も�滄晠闅溾�濆锛屽叾浠栫瓑绾т俊鎭�滃凡璇烩�濆悗锛岃嚜鍔ㄧЩ鍑衡�滃彂鐢熶腑鈥濆垪琛ㄥ苟鍔犲叆鈥滃巻鍙茶褰曗�濆垪琛�
                         HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed);
@@ -157,10 +150,8 @@
                     //鏀瑰彉缂撳瓨鐘舵��
                     if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) {
                         HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated);
-                        BaseEventBus baseEventBus = new BaseEventBus();
-                        baseEventBus.setTopic(ConstantManage.message_function_push_post);
-                        baseEventBus.setType(MessageStateType.untreated);
-                        EventBus.getDefault().post(baseEventBus);
+                        //閫氱煡鏈鐞嗚鏇存柊鏁版嵁
+                        HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated);
                     } else {
                         //闄も�滄晠闅溾�濆锛屽叾浠栫瓑绾т俊鎭�滃凡璇烩�濆悗锛岃嚜鍔ㄧЩ鍑衡�滃彂鐢熶腑鈥濆垪琛ㄥ苟鍔犲叆鈥滃巻鍙茶褰曗�濆垪琛�
                         HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed);
@@ -175,7 +166,7 @@
         viewBinding.messageInfoSolveTv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                HdlMessageLogic.getInstance().getMessageMessageSolve(mMsgId, new CloudCallBeak<Boolean>() {
+                HdlMessageLogic.getInstance().getMessageMessageSolve(mMessageBean.getMsgId().toString(), new CloudCallBeak<Boolean>() {
                     @Override
                     public void onSuccess(Boolean obj) {
                         if (mMessageBean == null) {
@@ -206,15 +197,9 @@
      */
     private void sendEventBus() {
         //閫氱煡宸插鐞嗚鏇存柊鏁版嵁
-        BaseEventBus processedBus = new BaseEventBus();
-        processedBus.setTopic(ConstantManage.message_function_push_post);
-        processedBus.setType(MessageStateType.processed);
-        EventBus.getDefault().post(processedBus);
+        HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.processed);
         //閫氱煡鏈鐞嗚鏇存柊鏁版嵁
-        BaseEventBus untreatedBus = new BaseEventBus();
-        untreatedBus.setTopic(ConstantManage.message_function_push_post);
-        untreatedBus.setType(MessageStateType.untreated);
-        EventBus.getDefault().post(untreatedBus);
+        HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated);
     }
 
 
@@ -237,16 +222,71 @@
         viewBinding.messageInfoPowerStationLocationIn.leftTitleTv.setText(R.string.message_alarm_detailspower_station_location);
         viewBinding.messageInfoAlarmTimeIn.leftTitleTv.setText(R.string.message_alarm_details_time);
 
-        viewBinding.messageInfoAlarmContentIn.rightContentTv.setText("");
-        viewBinding.messageInfoAlarmDeviceIn.rightContentTv.setText("");
-        viewBinding.messageInfoAlarmRangeIn.rightContentTv.setText("");
-        viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText("");
-        viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText("");
+        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 (mMessageStateType.equals(MessageStateType.processed)) {
+
+        if (mMessageBean.getStatus().equals(MessageStateType.processed)) {
             //宸茬粡瑙e喅鎺夌殑闅愯棌
             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();
+            }
+
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0