Browse Source

1.优化代码

王鹏鹏 1 year ago
parent
commit
f2d6d606f9

+ 27 - 21
healthconsultation/src/main/java/com/yingyang/healthconsultation/activity/HealthConsultationActivity.kt

@@ -5,16 +5,15 @@ import android.annotation.SuppressLint
 import android.content.Context
 import android.os.Bundle
 import android.text.TextUtils
-import android.util.Log
 import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.hjq.permissions.OnPermissionCallback
 import com.hjq.permissions.XXPermissions
+import com.tencent.imsdk.v2.V2TIMAdvancedMsgListener
 import com.tencent.imsdk.v2.V2TIMConversation
 import com.tencent.imsdk.v2.V2TIMManager
-import com.tencent.imsdk.v2.V2TIMSimpleMsgListener
-import com.tencent.imsdk.v2.V2TIMUserInfo
+import com.tencent.imsdk.v2.V2TIMMessage
 import com.tencent.qcloud.tuicore.TUIConstants
 import com.tencent.qcloud.tuicore.TUICore
 import com.tencent.qcloud.tuicore.TUILogin
@@ -112,29 +111,36 @@ class HealthConsultationActivity :
     override fun initData() {
         successfulPurchase()
         //消息接受监听
-        V2TIMManager.getInstance().addSimpleMsgListener(simpleMsgListener)
+        V2TIMManager.getMessageManager().addAdvancedMsgListener(simpleMsgListener)
     }
 
     /**
      * 自定义消息监听
      */
-    private var simpleMsgListener: V2TIMSimpleMsgListener = object : V2TIMSimpleMsgListener() {
-        override fun onRecvC2CCustomMessage(
-            msgID: String?,
-            sender: V2TIMUserInfo?,
-            customData: ByteArray?
-        ) {
-            super.onRecvC2CCustomMessage(msgID, sender, customData)
-            if (customData != null) {
-                val data = String(customData)
-                if (TextUtils.isEmpty(data).not()) {
-                    val messageBean = GsonUtil.GsonToBean(data, MessageBean::class.java)
-                    if (messageBean != null && TextUtils.equals("start", messageBean.businessID)) {
-                        if (consultationBeans.isNotEmpty()) {
-                            consultationBeans.forEach {
-                                it.status = "2"
+    private var simpleMsgListener: V2TIMAdvancedMsgListener = object : V2TIMAdvancedMsgListener() {
+        override fun onRecvNewMessage(msg: V2TIMMessage?) {
+            super.onRecvNewMessage(msg)
+            runOnUiThread {
+                if (msg != null) {
+                    if (msg.elemType == V2TIMMessage.V2TIM_ELEM_TYPE_CUSTOM) {
+                        val customElem = msg.customElem
+                        if (customElem != null && customElem.data != null) {
+                            val data = String(customElem.data)
+                            if (TextUtils.isEmpty(data).not()) {
+                                val messageBean = GsonUtil.GsonToBean(data, MessageBean::class.java)
+                                if (messageBean != null && TextUtils.equals(
+                                        "start",
+                                        messageBean.businessID
+                                    )
+                                ) {
+                                    if (consultationBeans.isNotEmpty()) {
+                                        consultationBeans.forEach {
+                                            it.status = "2"
+                                        }
+                                        consultationAdapter.setData(consultationBeans)
+                                    }
+                                }
                             }
-                            consultationAdapter.setData(consultationBeans)
                         }
                     }
                 }
@@ -274,7 +280,7 @@ class HealthConsultationActivity :
 
     override fun onDestroy() {
         runOnUiThread {
-            V2TIMManager.getInstance().removeSimpleMsgListener(simpleMsgListener)
+            V2TIMManager.getMessageManager().removeAdvancedMsgListener(simpleMsgListener)
         }
         super.onDestroy()
     }