Przeglądaj źródła

feat: 修复一些问题 (#5)

* feat: 礼物特效开关,针对于用户自己生效

* feat: 送礼选择用户列表,过滤掉自己

* feat: 幸运礼物,数量选择问题

* feat: 麦位头像显示问题

* feat: 送礼用户选择

* feat: 送礼横幅位置调整
LXD312569496 8 miesięcy temu
rodzic
commit
9f6c201a5a

+ 2 - 2
app/dependencies/releaseRuntimeClasspath.txt

@@ -232,7 +232,7 @@ com.wenext.android:frame-aab:5.1.8-yoki-beta
 com.wenext.android:frame-apm:5.1.4
 com.wenext.android:frame-audio:5.1.4
 com.wenext.android:frame-base:5.1.4
-com.wenext.android:frame-bom:5.1.22-yoki-11
+com.wenext.android:frame-bom:5.1.22-yoki-12
 com.wenext.android:frame-coroutine:5.1.4
 com.wenext.android:frame-crash:5.1.4
 com.wenext.android:frame-data:5.1.5-yoki
@@ -244,7 +244,7 @@ com.wenext.android:frame-effect:5.1.6
 com.wenext.android:frame-game:5.1.5-yoki
 com.wenext.android:frame-googleservice:5.1.4
 com.wenext.android:frame-guide:5.1.18-yoki
-com.wenext.android:frame-image:5.1.6-yoki-beta2
+com.wenext.android:frame-image:5.1.6-yoki-beta3
 com.wenext.android:frame-locale:5.1.8-yoki
 com.wenext.android:frame-log:5.1.5-yoki
 com.wenext.android:frame-media:5.1.9-yoki-beta

+ 5 - 0
app/src/main/java/com/adealink/weparty/module/gift/effect/SendGiftNoticeLayout.kt

@@ -68,6 +68,11 @@ class SendGiftNoticeLayout @JvmOverloads constructor(
 
     }
 
+    fun setMarginTopForFirst(marginTop: Float) {
+        marginTopForFirst = marginTop
+        requestLayout()
+    }
+
     fun setExpectChannelCount(count: Int) {
         expectCount = count
         requestLayout()

+ 1 - 1
gradle/libs.versions.toml

@@ -154,7 +154,7 @@ appleAppauth = "0.11.1"
 tiktok = "2.3.0"
 
 # frame
-frameBom = "5.1.22-yoki-11"
+frameBom = "5.1.22-yoki-12"
 frameRouterCompiler = "5.1.6"
 frameTrace = "1.0.0"
 frameBundleTool = "1.0.0"

+ 5 - 1
module/gift/src/main/java/com/adealink/weparty/gift/components/GiftPanelBottomOperateComp.kt

@@ -76,7 +76,11 @@ class GiftPanelBottomOperateComp(
                 binding.selectCount.isEnabled = false
                 binding.selectArrow.hide()
             } else if (giftInfo.isLuckyGift()) {
-                updateSelectCount(1)
+                if (this.selectCount == 3) {
+                    updateSelectCount(1)
+                } else {
+                    updateSelectCount(this.selectCount)
+                }
                 selectItems = luckyGiftCountList
                 binding.selectCount.isEnabled = true
                 binding.selectArrow.show()

+ 5 - 2
module/room/src/main/java/com/adealink/weparty/room/chatroom/page/chat/ChatRoomDynamicFactory.kt

@@ -2,6 +2,7 @@ package com.adealink.weparty.room.chatroom.page.chat
 
 import android.content.Context
 import android.view.View
+import android.view.ViewGroup
 import androidx.annotation.IdRes
 import androidx.appcompat.widget.LinearLayoutCompat
 import androidx.constraintlayout.widget.ConstraintLayout
@@ -151,8 +152,10 @@ class ChatRoomBaseLayerFactory : IDynamicViewFactory<ConstraintLayout.LayoutPara
             }
 
             R.id.id_chat_room_gift_notice_view -> {
-                ConstraintLayout.LayoutParams(0, 0).apply {
-                    topToBottom = R.id.top_bar_layout
+                ConstraintLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT).apply {
+                    verticalBias=0f
+                    constrainedHeight=true
+                    topToTop= R.id.chat_message_fragment
                     bottomToTop = R.id.bottom_operate_fragment
                     startToStart = ConstraintLayout.LayoutParams.PARENT_ID
                     endToEnd = ConstraintLayout.LayoutParams.PARENT_ID

+ 7 - 0
module/room/src/main/java/com/adealink/weparty/room/gift/view/RoomGiftComp.kt

@@ -84,6 +84,7 @@ import com.adealink.weparty.room.gift.widget.GiftEffectListener
 import com.adealink.weparty.room.gift.widget.SendStaticGiftEffectEntity
 import com.adealink.weparty.room.gift.widget.StaticGiftEffectLayout
 import com.adealink.weparty.room.member.viewmodel.RoomMemberViewModel
+import com.adealink.weparty.room.micseat.globalbroadcast.manager.roomGlobalBroadcastManager
 import com.adealink.weparty.room.operate.RoomBottomOperateFragment
 import com.adealink.weparty.room.sdk.service.roomService
 import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
@@ -123,6 +124,7 @@ class RoomGiftComp(
     private val giftNoticeLayout: IDynamicView<SendGiftNoticeLayout> by fastLazy {
         object : IDynamicView<SendGiftNoticeLayout>(dynamicLayers, R.id.id_chat_room_gift_notice_view) {
             override fun onViewAdded(view: SendGiftNoticeLayout) {
+                view.setMarginTopForFirst(0f)
                 view.clipChildren = true
                 view.clipToPadding = true
                 view.setExpectChannelCount(-1)
@@ -285,6 +287,11 @@ class RoomGiftComp(
             addInfoNotice(sendGiftNotify)
         }
 
+        if (!roomGlobalBroadcastManager.getRoomGlobalBroadcastData().userEnableGiftEffect){
+            //用户关闭送礼特效
+            return
+        }
+
         if (attrViewModel.getRoomConfigSwitch(GlobalConfigType.GLOBAL_ROOM_GIFT_EFFECT.value).not()) {
             //房间关闭送礼特效
             return

+ 6 - 3
module/room/src/main/java/com/adealink/weparty/room/micseat/globalbroadcast/data/RoomGlobalBroadcastData.kt

@@ -22,7 +22,8 @@ data class RoomGlobalBroadcastData(
     @SerializedName("greedyBoxBroadcast") var greedyBoxBroadcast: Boolean = true,
     @SerializedName("dragonTigerBroadcast") var dragonTigerBroadcast: Boolean = true,
     @SerializedName("texasCowboyBroadcast") var texasCowboyBroadcast: Boolean = true,
-    @SerializedName("russianRouletteBroadcast") var russianRouletteBroadcast: Boolean = true
+    @SerializedName("russianRouletteBroadcast") var russianRouletteBroadcast: Boolean = true,
+    @SerializedName("userEnableGiftEffect") var userEnableGiftEffect: Boolean = true,
 )
 
 
@@ -43,9 +44,11 @@ interface RoomGlobalBroadcastItem : BaseListItemData {
 
 enum class RoomGlobalBroadcastEnum(val id: Int, val textRes: Int) {
     SEND_GIFT(1, R.string.room_send_gift_global_broadcast),
+
+    USER_ENABLE_GIFT_EFFECT(2, R.string.setting_room_setting_gift_effect),
     VEHICLE_EFFECT(9, R.string.room_vehicle_effect_broadcast),
-    LUCKY_FRUIT(2, R.string.room_lucky_fruit_global_broadcast),
-    SLOT(3, R.string.room_slot_global_broadcast),
+    LUCKY_FRUIT(3, R.string.room_lucky_fruit_global_broadcast),
+    SLOT(4, R.string.room_slot_global_broadcast),
 //    LEVEL1_ROCKET(4, R.string.room_level1_rocket_global_broadcast),
 //    LEVEL2_ROCKET(5, R.string.room_level2_global_broadcast),
 //    LEVEL1_TREASURE(6, R.string.room_level1_treasure_global_broadcast),

+ 2 - 0
module/room/src/main/java/com/adealink/weparty/room/micseat/globalbroadcast/viewmodel/RoomGlobalBroadcastViewModel.kt

@@ -60,6 +60,7 @@ class RoomGlobalBroadcastViewModel : BaseViewModel() {
     private fun isEnabled(id: Int): Boolean {
         val globalBroadcastEnum = RoomGlobalBroadcastEnum.get(id) ?: return true
         return when (globalBroadcastEnum) {
+            RoomGlobalBroadcastEnum.USER_ENABLE_GIFT_EFFECT -> roomGlobalBroadcastData.userEnableGiftEffect
             RoomGlobalBroadcastEnum.SEND_GIFT -> roomGlobalBroadcastData.sendGiftBroadcast
             RoomGlobalBroadcastEnum.LUCKY_FRUIT -> roomGlobalBroadcastData.luckyFruitBroadcast
             RoomGlobalBroadcastEnum.SLOT -> roomGlobalBroadcastData.slotBroadcast
@@ -82,6 +83,7 @@ class RoomGlobalBroadcastViewModel : BaseViewModel() {
     fun updateData(id: Int, enabled: Boolean) {
         val globalBroadcastEnum = RoomGlobalBroadcastEnum.get(id) ?: return
         when (globalBroadcastEnum) {
+            RoomGlobalBroadcastEnum.USER_ENABLE_GIFT_EFFECT -> roomGlobalBroadcastData.userEnableGiftEffect = enabled
             RoomGlobalBroadcastEnum.SEND_GIFT -> roomGlobalBroadcastData.sendGiftBroadcast = enabled
             RoomGlobalBroadcastEnum.LUCKY_FRUIT -> roomGlobalBroadcastData.luckyFruitBroadcast = enabled
             RoomGlobalBroadcastEnum.SLOT -> roomGlobalBroadcastData.slotBroadcast = enabled

+ 14 - 3
module/room/src/main/java/com/adealink/weparty/room/micseat/view/select/HMicOnMembersSelectorComp.kt

@@ -15,6 +15,7 @@ import com.adealink.frame.mvvm.viewmodel.viewModels
 import com.adealink.frame.util.DisplayUtil.dp2px
 import com.adealink.weparty.commonui.BaseViewComponent
 import com.adealink.weparty.commonui.ext.gone
+import com.adealink.weparty.commonui.ext.isUiValid
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.recycleview.adapter.MultiTypeListAdapter
 import com.adealink.weparty.commonui.recycleview.diffutil.BaseListDiffUtil
@@ -107,7 +108,7 @@ class HMicOnMembersSelectorComp(
                         isSelected = isSelect(it.micUid)
                     )
                 }
-                adapter.submitList(sortMicSelectItemList(list))
+                submitList(sortMicSelectItemList(list))
                 onSelectChanged()
             } else {
                 if (selectUidSet.isEmpty()) {
@@ -116,7 +117,7 @@ class HMicOnMembersSelectorComp(
                         selectUidSet.add(it.micUid)
                     }
                 }
-                adapter.submitList(
+                submitList(
                     sortMicSelectItemList(
                         memberList
                             .map {
@@ -183,7 +184,7 @@ class HMicOnMembersSelectorComp(
                                 )
                             }
                         }
-                        adapter.submitList(list)
+                        submitList(list)
                         selectAll()
                     }
                 }
@@ -191,6 +192,16 @@ class HMicOnMembersSelectorComp(
 
     }
 
+    //统一处理
+    private fun submitList(list: List<SelectItem>) {
+        val filterList = list.filter { it.uid != ProfileModule.getMyUid() }
+        adapter.submitList(filterList) {
+            if (lifecycleOwner.isUiValid()) {
+                binding.root.show(isShow = filterList.isNotEmpty())
+            }
+        }
+    }
+
     override fun getMemberInfo(uid: Long, callback: (UserInfo?) -> Unit) {
         memberViewModel.getRoomMemberInfo(uid).observe(viewLifecycleOwner) {
             callback(if (it is Rlt.Success) it.data else null)

+ 2 - 0
module/room/src/main/res/values/strings.xml

@@ -421,4 +421,6 @@
    <string name="room_media_conflict_title">Enter Room?</string>
    <string name="room_media_conflict_tips">You are in %1$s now, You will automatically check out when you enter room</string>
    <string name="room_media_conflict_remind">Don\'t remind me again</string>
+
+   <string name="setting_room_setting_gift_effect">Gift effects</string>
 </resources>