Explorar el Código

1.添加Java-WebSocket依赖

王鹏鹏 hace 2 años
padre
commit
fae17b046e

+ 38 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/activity/HealthConsultationActivity.kt

@@ -7,6 +7,9 @@ import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 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.qcloud.tuicore.TUIConstants
 import com.tencent.qcloud.tuicore.TUICore
 import com.tencent.qcloud.tuicore.TUILogin
@@ -15,6 +18,7 @@ import com.yingyang.healthconsultation.R
 import com.yingyang.healthconsultation.adapter.ConsultationAdapter
 import com.yingyang.healthconsultation.adapter.RecommendDoctorAdapter
 import com.yingyang.healthconsultation.databinding.ActivityHealthConsultationBinding
+import com.yingyang.healthconsultation.entity.MessageBean
 import com.yingyangfly.baselib.config.AccountConfig
 import com.yingyangfly.baselib.db.DoctorBean
 import com.yingyangfly.baselib.ext.getEndAnimation
@@ -23,6 +27,7 @@ import com.yingyangfly.baselib.ext.show
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
+import com.yingyangfly.baselib.utils.GsonUtil
 import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.User
 
@@ -85,7 +90,35 @@ class HealthConsultationActivity :
     }
 
     override fun initData() {
+        //消息接受监听
+        V2TIMManager.getInstance().addSimpleMsgListener(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"
+                            }
+                            consultationAdapter.setData(consultationBeans)
+                        }
+                    }
+                }
+            }
+        }
     }
 
     @SuppressLint("ClickableViewAccessibility")
@@ -220,4 +253,9 @@ class HealthConsultationActivity :
             }
         })
     }
+
+    override fun onDestroy() {
+        V2TIMManager.getInstance().removeSimpleMsgListener(simpleMsgListener)
+        super.onDestroy()
+    }
 }

+ 5 - 0
healthconsultation/src/main/java/com/yingyang/healthconsultation/entity/MessageBean.kt

@@ -0,0 +1,5 @@
+package com.yingyang.healthconsultation.entity
+
+data class MessageBean(
+    val businessID: String
+)