From bab64db25c8ff7b09e94dec632b91b0f793b3b57 Mon Sep 17 00:00:00 2001 From: wzq Date: Wed, 27 Sep 2023 18:43:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=20=E5=90=88=E5=B9=B6=20?= =?UTF-8?q?=E5=AF=BB=E7=88=B1=20=E5=8A=A8=E6=80=81/=E9=9D=99=E6=80=81=20?= =?UTF-8?q?=E9=A3=98=E5=B1=8F=20=E9=98=9F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/avroom/widget/RoomEffectBoxView.kt | 52 ++++++------------- .../main/res/layout/layout_room_effect.xml | 7 --- 2 files changed, 17 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt index dae76de63..ab975054c 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt +++ b/app/src/main/java/com/yizhuan/erban/avroom/widget/RoomEffectBoxView.kt @@ -41,6 +41,8 @@ import com.yizhuan.xchat_android_constants.XChatConstants import com.yizhuan.xchat_android_core.auth.AuthModel import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo import com.yizhuan.xchat_android_core.im.custom.bean.* +import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY +import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA import com.yizhuan.xchat_android_core.manager.AvRoomDataManager import com.yizhuan.xchat_android_core.manager.IMNetEaseManager import com.yizhuan.xchat_android_core.manager.RoomEvent @@ -88,9 +90,6 @@ class RoomEffectBoxView @JvmOverloads constructor( private var boxDisposable: Disposable? = null private val messagesBox: MutableList by lazy { ArrayList() } - private var boxSVGADisposable: Disposable? = null - private val messagesBoxSVGA: MutableList by lazy { ArrayList() } - private var animationLuckyGift: Animation? = null private var disposableLuckyGift: Disposable? = null private val messagesLuckyGift: MutableList by lazy { ArrayList() } @@ -153,7 +152,7 @@ class RoomEffectBoxView @JvmOverloads constructor( if (roomEvent == null || AvRoomDataManager.get().isSelfGamePlaying) return@subscribe when (roomEvent.event) { RoomEvent.BOX_NOTIFY -> addBoxNotify(roomEvent.chatRoomMessage) - RoomEvent.BOX_NOTIFY_SVGA -> addBoxNotifyBySVGA(roomEvent.chatRoomMessage) + RoomEvent.BOX_NOTIFY_SVGA -> addBoxNotify(roomEvent.chatRoomMessage) RoomEvent.DATING_ALL_NOTIFY -> addDatingAllNotify(roomEvent.chatRoomMessage) RoomEvent.RADISH_NOTIFY, RoomEvent.RADISH_NOTIFY_SVGA -> addRadishNotify(roomEvent.chatRoomMessage) @@ -317,9 +316,16 @@ class RoomEffectBoxView @JvmOverloads constructor( .takeWhile { messagesBox.size > 0 && !mContext.isDestroyed() } .subscribe { if (binding.flBoxNotify.childCount == 0) { - showBoxNotify( - messagesBox.removeAt(0) - ) + val msg = messagesBox.removeAt(0) + val attachment = msg.attachment + if (attachment is CustomAttachment) { + if (attachment.second == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY) { + showBoxNotify(msg) + } else if(attachment.second == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) { + showBoxNotifyBySVGA(msg) + } + + } } } } @@ -366,30 +372,6 @@ class RoomEffectBoxView @JvmOverloads constructor( }, CLOSE_TIME.toLong()) } - /** - * 幸運池飄屏 五級 SVGA背景的 - * - * @param chatRoomMessage - */ - private fun addBoxNotifyBySVGA(chatRoomMessage: ChatRoomMessage) { - if (binding.clNotify.visibility == GONE) { - binding.clNotify.visibility = VISIBLE - } - messagesBoxSVGA.add(chatRoomMessage) - if (boxSVGADisposable == null || messagesBoxSVGA.size == 1) { - boxSVGADisposable = Observable.interval(0, PERIOD.toLong(), TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .takeWhile { messagesBoxSVGA.size > 0 && !mContext.isDestroyed() } - .subscribe { - if (binding.flSvgaBoxNotify.childCount == 0) { - showBoxNotifyBySVGA( - messagesBoxSVGA.removeAt(0) - ) - } - } - } - } - private fun showBoxNotifyBySVGA(chatRoomMessage: ChatRoomMessage) { val attachment = chatRoomMessage.attachment as RoomBoxPrizeAttachment val text = SpannableBuilder() @@ -423,15 +405,15 @@ class RoomEffectBoxView @JvmOverloads constructor( animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify_close) animationBox!!.setAnimationListener(object : SimpleAnimationListener() { override fun onAnimationEnd(animation: Animation?) { - binding.flSvgaBoxNotify.removeView(svgaImageView) + binding.flBoxNotify.removeView(svgaImageView) } }) - binding.flSvgaBoxNotify.startAnimation(animationBox) + binding.flBoxNotify.startAnimation(animationBox) } } animationBox = AnimationUtils.loadAnimation(mContext, R.anim.anim_box_notify) - binding.flSvgaBoxNotify.addView(svgaImageView) - binding.flSvgaBoxNotify.startAnimation(animationBox) + binding.flBoxNotify.addView(svgaImageView) + binding.flBoxNotify.startAnimation(animationBox) shareParser().decodeFromAssets("svga/box_notify.svga", object : SVGAParser.ParseCompletion { override fun onComplete(videoItem: SVGAVideoEntity) { diff --git a/app/src/main/res/layout/layout_room_effect.xml b/app/src/main/res/layout/layout_room_effect.xml index e68893230..2cd67563b 100644 --- a/app/src/main/res/layout/layout_room_effect.xml +++ b/app/src/main/res/layout/layout_room_effect.xml @@ -94,13 +94,6 @@ app:layout_constraintDimensionRatio="75:12" app:layout_constraintTop_toTopOf="parent" /> - -