|
@@ -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?) {
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 专属游戏弹框
|
|
|
*/
|