Browse Source

1.优化代码

王鹏鹏 1 year ago
parent
commit
8918e783c7

+ 37 - 19
healthconsultation/src/main/java/com/yingyang/healthconsultation/activity/HealthConsultationActivity.kt

@@ -10,10 +10,7 @@ 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.V2TIMMessage
+import com.tencent.imsdk.v2.*
 import com.tencent.qcloud.tuicore.TUIConstants
 import com.tencent.qcloud.tuicore.TUICore
 import com.tencent.qcloud.tuicore.TUILogin
@@ -122,22 +119,26 @@ class HealthConsultationActivity :
             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"
+                    if (msg.isRead.not()) {
+                        makeMessageAsRead(msg)
+                        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)
                                     }
                                 }
                             }
@@ -148,6 +149,23 @@ class HealthConsultationActivity :
         }
     }
 
+    /**
+     * 消息改成已读
+     */
+    private fun makeMessageAsRead(msg: V2TIMMessage) {
+        V2TIMManager.getConversationManager().cleanConversationUnreadMessageCount(
+            String.format("c2c_%s", msg.sender),
+            0,
+            0,
+            object : V2TIMCallback {
+                override fun onSuccess() {
+                }
+
+                override fun onError(p0: Int, p1: String?) {
+                }
+            })
+    }
+
     @SuppressLint("ClickableViewAccessibility")
     override fun onTouch(v: View, event: MotionEvent): Boolean {
         when (event.action) {

+ 18 - 12
home/src/main/java/com/yingyangfly/home/activity/HomeActivity.kt

@@ -670,18 +670,7 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(),
             super.onRecvNewMessage(msg)
             runOnUiThread {
                 if (msg.isRead.not()) {
-                    V2TIMManager.getConversationManager().cleanConversationUnreadMessageCount(
-                        String.format("c2c_%s", msg.sender),
-                        0,
-                        0,
-                        object : V2TIMCallback {
-                            override fun onSuccess() {
-                            }
-
-                            override fun onError(p0: Int, p1: String?) {
-                            }
-
-                        })
+                    makeMessageAsRead(msg)
                     if (msg.elemType == V2TIMMessage.V2TIM_ELEM_TYPE_CUSTOM) {
                         val customElem = msg.customElem
                         if (customElem != null && customElem.data != null) {
@@ -727,6 +716,23 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(),
         }
     }
 
+    /**
+     * 消息改成已读
+     */
+    private fun makeMessageAsRead(msg: V2TIMMessage) {
+        V2TIMManager.getConversationManager().cleanConversationUnreadMessageCount(
+            String.format("c2c_%s", msg.sender),
+            0,
+            0,
+            object : V2TIMCallback {
+                override fun onSuccess() {
+                }
+
+                override fun onError(p0: Int, p1: String?) {
+                }
+            })
+    }
+
     /**
      * 移除消息监听
      */

+ 48 - 22
livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/detail/LiveBroadcastActivity.kt

@@ -7,9 +7,7 @@ import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.tencent.bugly.crashreport.CrashReport
-import com.tencent.imsdk.v2.V2TIMManager
-import com.tencent.imsdk.v2.V2TIMSimpleMsgListener
-import com.tencent.imsdk.v2.V2TIMUserInfo
+import com.tencent.imsdk.v2.*
 import com.tencent.live2.V2TXLivePlayer
 import com.tencent.live2.V2TXLivePlayerObserver
 import com.tencent.live2.impl.V2TXLivePlayerImpl
@@ -67,7 +65,7 @@ class LiveBroadcastActivity :
 
     override fun initData() {
         //消息接受监听
-        V2TIMManager.getInstance().addSimpleMsgListener(simpleMsgListener)
+        V2TIMManager.getMessageManager().addAdvancedMsgListener(simpleMsgListener)
     }
 
     /**
@@ -99,7 +97,7 @@ class LiveBroadcastActivity :
                 mLivePlayer = null
             }
             timer.cancel()
-            V2TIMManager.getInstance().removeSimpleMsgListener(simpleMsgListener)
+            V2TIMManager.getMessageManager().removeAdvancedMsgListener(simpleMsgListener)
         }
         super.onDestroy()
     }
@@ -181,23 +179,34 @@ class LiveBroadcastActivity :
     /**
      * 自定义消息监听
      */
-    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) {
-                        if (TextUtils.equals("live", messageBean.businessID)) {
-                            binding.statusLayout.show(true)
-                        } else if (TextUtils.equals("gameDetails", messageBean.businessID)) {
-                            if (TextUtils.isEmpty(messageBean.data).not()) {
-                                showGameTasksDialog(messageBean.data)
+    private var simpleMsgListener: V2TIMAdvancedMsgListener = object : V2TIMAdvancedMsgListener() {
+        override fun onRecvNewMessage(msg: V2TIMMessage?) {
+            super.onRecvNewMessage(msg)
+            runOnUiThread {
+                if (msg != null) {
+                    if (msg.isRead.not()) {
+                        makeMessageAsRead(msg)
+                        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) {
+                                        if (TextUtils.equals("live", messageBean.businessID)) {
+                                            binding.statusLayout.show(true)
+                                        } else if (TextUtils.equals(
+                                                "gameDetails",
+                                                messageBean.businessID
+                                            )
+                                        ) {
+                                            if (TextUtils.isEmpty(messageBean.data).not()) {
+                                                showGameTasksDialog(messageBean.data)
+                                            }
+                                        }
+                                    }
+                                }
                             }
                         }
                     }
@@ -206,6 +215,23 @@ class LiveBroadcastActivity :
         }
     }
 
+    /**
+     * 消息改成已读
+     */
+    private fun makeMessageAsRead(msg: V2TIMMessage) {
+        V2TIMManager.getConversationManager().cleanConversationUnreadMessageCount(
+            String.format("c2c_%s", msg.sender),
+            0,
+            0,
+            object : V2TIMCallback {
+                override fun onSuccess() {
+                }
+
+                override fun onError(p0: Int, p1: String?) {
+                }
+            })
+    }
+
     /**
      * 专属游戏弹框
      */