Pārlūkot izejas kodu

fix: 语音房送礼优化

tongmengxiao 1 gadu atpakaļ
vecāks
revīzija
aed71e0b6a

+ 9 - 1
baseswago/src/main/java/com/swago/baseswago/model/live/audio/AudioSendGiftModel.kt

@@ -1,5 +1,7 @@
 package com.swago.baseswago.model.live.audio
 
+import com.swago.baseswago.model.live.gift.IMGiftModel
+
 data class AudioSendGiftModel(
     val giftBatch: Int,
     val giftIcon: String,
@@ -25,7 +27,8 @@ data class AudioSendGiftModel(
     val userWealthJingyanValue:String,
     val nextWealthNeedJingyan:String,
     val giftOneceNum: Int,
-    val senderAvatar:String
+    val senderAvatar:String,
+    val im_data: ImData
 )
 
 data class Receiver(
@@ -41,4 +44,9 @@ data class Receiver(
      * 最后上移动动画的距离
      */
     var offSetY:Float
+)
+
+data class ImData(
+    val type:Int,
+    val data: IMGiftModel
 )

+ 21 - 0
room/src/main/java/com/swago/room/gift/GiftDialog.kt

@@ -731,6 +731,27 @@ class GiftDialog : BaseXDFragment<DialogGiftBinding>() {
                 binding.progressBar.progress = (it.userWealthJingyanValue.toDouble()/(it.nextWealthNeedJingyan.toDouble()+it.userWealthJingyanValue.toDouble())*100).toInt()
                 binding.tvAllExp.text = "/"+(it.userWealthJingyanValue.toDouble()+it.nextWealthNeedJingyan.toDouble()).toInt()
                 binding.tvExp.text = it.userWealthJingyanValue
+
+                if (it.im_data.data.giftType == 3) { //幸运
+                    val receiverName = StringBuffer()
+                    it.receivers.forEach {
+                        receiverName.append("${it.receiverName} ,")
+                    }
+                    if (it.receivers.isNotEmpty())
+                        receiverName.deleteCharAt(receiverName.length - 1)
+                    it.im_data.data.receiverName = receiverName.toString()
+                    msgVm.showGiftDanDao?.invoke(it.im_data.data)
+                } else if (it.im_data.data.giftType == 1 || it.im_data.data.giftType == 5){ //热门和名人墙
+                    val receiverName = StringBuffer()
+                    it.receivers.forEach {
+                        receiverName.append("${it.receiverName} ,")
+                    }
+                    if (it.receivers.isNotEmpty())
+                        receiverName.deleteCharAt(receiverName.length - 1)
+                    it.im_data.data.receiverName = receiverName.toString()
+                    msgVm.playSvgUrl?.invoke(it.im_data.data ,true)
+                    msgVm.addAudioGiftAnimFun?.invoke(it)
+                }
             }
             if (type == 2 || type == 3) {
                 dismissAllowingStateLoss()

+ 1 - 46
room/src/main/java/com/swago/room/vm/MsgVm.kt

@@ -665,52 +665,7 @@ class MsgVm(application: Application) : AbsMsgVm(application) {
                             playSvgUrl?.invoke(imGiftModel,true)
                         }
                         //多人送礼动画
-                        if (it.giftType == 3) {
-                            val imGiftModel = IMGiftModel()
-                            imGiftModel.giftIcon = it.giftIcon
-                            imGiftModel.senderName = it.senderName
-                            val receiverName = StringBuffer()
-                            it.receivers.forEach {
-                                receiverName.append("${it.receiverName} ,")
-                            }
-                            if (it.receivers.isNotEmpty())
-                                receiverName.deleteCharAt(receiverName.length - 1)
-                            imGiftModel.receiverName = receiverName.toString()
-                            imGiftModel.giftNum = it.giftNum
-                            imGiftModel.multiple = it.multiple
-                            imGiftModel.senderId = it.senderId
-                            imGiftModel.giftId = it.giftId
-                            imGiftModel.giftOneceNum = it.giftOneceNum
-                            imGiftModel.senderAvatar = it.senderAvatar
-                            showGiftDanDao?.invoke(imGiftModel)
-                        } else {
-                            if (it.giftType == 1 || it.giftType == 5){
-                                val imGiftModel = IMGiftModel()
-                                imGiftModel.giftIcon = it.giftIcon
-                                imGiftModel.giftNum = it.giftNum
-                                imGiftModel.senderId = it.senderId
-                                imGiftModel.giftId = it.giftId
-                                imGiftModel.giftOneceNum = it.giftOneceNum
-                                imGiftModel.senderAvatar = it.senderAvatar
-
-
-                                imGiftModel.giftIdName = it.giftIdName
-                                imGiftModel.giftName = it.giftName
-                                imGiftModel.giftArName = it.giftArName
-                                imGiftModel.giftEnName = it.giftEnName
-                                imGiftModel.senderName = it.senderName
-                                imGiftModel.multiple = it.multiple
-                                val receiverName = StringBuffer()
-                                it.receivers.forEach {
-                                    receiverName.append("${it.receiverName} ,")
-                                }
-                                if (it.receivers.isNotEmpty())
-                                    receiverName.deleteCharAt(receiverName.length - 1)
-                                imGiftModel.receiverName = receiverName.toString()
-
-                                playSvgUrl?.invoke(imGiftModel ,true)
-                            }
-
+                        if (it.senderId != UserInfo.getUserInfo()?.id){
                             addAudioGiftAnimFun?.invoke(it)
                         }