Преглед изворни кода

feat: 礼物面板,退房确认

DoggyZhang пре 1 година
родитељ
комит
de60e2abe1
63 измењених фајлова са 496 додато и 532 уклоњено
  1. 1 1
      app/src/main/java/com/adealink/weparty/module/room/sdk/data/MicSeat.kt
  2. BIN
      app/src/main/res/drawable-xhdpi/common_coin_gray_12_ic.png
  3. BIN
      app/src/main/res/drawable-xhdpi/common_transparent_arrow_down_16_ic.png
  4. BIN
      app/src/main/res/drawable-xhdpi/common_transparent_arrow_up_ic.png
  5. BIN
      app/src/main/res/drawable-xhdpi/gift_item_member_owner_tag_ic.png
  6. BIN
      app/src/main/res/drawable-xhdpi/gift_item_member_owner_tag_selected_ic.png
  7. 2 2
      app/src/main/res/drawable/gift_item_member_other_index_bg.xml
  8. 6 0
      app/src/main/res/drawable/gift_item_member_other_index_selected_bg.xml
  9. 1 2
      app/src/main/res/drawable/room_play_center_panel_bg.xml
  10. 18 7
      app/src/main/res/layout/gift_item_member_select.xml
  11. 2 1
      app/src/main/res/values/colors.xml
  12. 0 3
      module/gift/src/main/java/com/adealink/weparty/gift/GiftPageFragment.kt
  13. 6 20
      module/gift/src/main/java/com/adealink/weparty/gift/GiftPanelFragment.kt
  14. 0 3
      module/gift/src/main/java/com/adealink/weparty/gift/SendGiftPanelFragment.kt
  15. 1 1
      module/gift/src/main/java/com/adealink/weparty/gift/adapter/GiftPanelAvatarSelectItemViewBinder.kt
  16. 11 63
      module/gift/src/main/java/com/adealink/weparty/gift/adapter/NormalGiftItemViewBinder.kt
  17. 6 4
      module/gift/src/main/java/com/adealink/weparty/gift/adapter/TimeLimitGiftItemViewBinder.kt
  18. 3 3
      module/gift/src/main/java/com/adealink/weparty/gift/backpack/GiftBackpackItemViewBinder.kt
  19. 1 7
      module/gift/src/main/java/com/adealink/weparty/gift/components/GiftPanelBottomOperateComp.kt
  20. BIN
      module/gift/src/main/res/drawable-xhdpi/gift_backpack_ic.png
  21. BIN
      module/gift/src/main/res/drawable-xhdpi/gift_item_selected_ic.png
  22. 0 15
      module/gift/src/main/res/drawable/gift_item_for_free_gift_select_bg.xml
  23. 0 16
      module/gift/src/main/res/drawable/gift_item_select_bg.xml
  24. 1 1
      module/gift/src/main/res/drawable/gift_panel_send_bg.xml
  25. 3 3
      module/gift/src/main/res/layout/fragment_gift_panel.xml
  26. 1 1
      module/gift/src/main/res/layout/item_avatar_gift_panel.xml
  27. 13 1
      module/gift/src/main/res/layout/item_gift_backpack.xml
  28. 1 10
      module/gift/src/main/res/layout/item_gift_tab.xml
  29. 16 6
      module/gift/src/main/res/layout/item_limit_time_gift.xml
  30. 19 16
      module/gift/src/main/res/layout/item_normal_gift.xml
  31. 19 4
      module/gift/src/main/res/layout/item_recharge.xml
  32. 16 15
      module/gift/src/main/res/layout/layout_gift_panel_bottom_operate.xml
  33. 6 6
      module/room/src/main/java/com/adealink/weparty/room/attr/widget/RoomMicModeSwitcher.kt
  34. 1 1
      module/room/src/main/java/com/adealink/weparty/room/chatroom/page/chat/ChatRoomDynamicFactory.kt
  35. 0 3
      module/room/src/main/java/com/adealink/weparty/room/gift/RoomGiftPanelFragment.kt
  36. 2 2
      module/room/src/main/java/com/adealink/weparty/room/member/RoomMemberInfoFragment.kt
  37. 17 1
      module/room/src/main/java/com/adealink/weparty/room/member/comp/RoomOnlineMemberComp.kt
  38. 32 0
      module/room/src/main/java/com/adealink/weparty/room/member/widget/RoomOnlineMemberDragView.kt
  39. 9 15
      module/room/src/main/java/com/adealink/weparty/room/member/widget/RoomOnlineMemberView.kt
  40. 0 1
      module/room/src/main/java/com/adealink/weparty/room/micseat/view/select/HMicOnMembersSelectorComp.kt
  41. 45 18
      module/room/src/main/java/com/adealink/weparty/room/micseat/view/select/adapter/MemberSelectItemViewBinder.kt
  42. 8 22
      module/room/src/main/java/com/adealink/weparty/room/minimize/dialog/RoomCloseTipDialog.kt
  43. 98 103
      module/room/src/main/java/com/adealink/weparty/room/operate/RoomBottomOperateFragment.kt
  44. BIN
      module/room/src/main/res/drawable-xhdpi/room_exit_big_ic.png
  45. BIN
      module/room/src/main/res/drawable-xhdpi/room_exit_ic.png
  46. BIN
      module/room/src/main/res/drawable-xhdpi/room_minimize_ic.png
  47. BIN
      module/room/src/main/res/drawable-xhdpi/room_operate_gift_gray_44_ic.png
  48. BIN
      module/room/src/main/res/drawable-xhdpi/room_operate_gift_green_36_ic.png
  49. BIN
      module/room/src/main/res/drawable-xhdpi/room_operate_gift_green_44_ic.png
  50. BIN
      module/room/src/main/res/drawable-xhdpi/room_operate_gift_ic.png
  51. BIN
      module/room/src/main/res/drawable-xhdpi/room_operate_input_emoji_ic.png
  52. BIN
      module/room/src/main/res/drawable-xhdpi/room_operate_msg_and_mic_ic.png
  53. BIN
      module/room/src/main/res/drawable-xhdpi/room_operation_play_center_ic.png
  54. 8 0
      module/room/src/main/res/drawable/room_bottom_input_bg.xml
  55. 8 0
      module/room/src/main/res/drawable/room_bottom_input_line_bg.xml
  56. 2 3
      module/room/src/main/res/drawable/room_close_tip_bg.xml
  57. 19 76
      module/room/src/main/res/layout/dialog_room_close_tip.xml
  58. 56 33
      module/room/src/main/res/layout/fragment_room_bottom_operate.xml
  59. 1 1
      module/room/src/main/res/layout/fragment_room_member_info.xml
  60. 10 12
      module/room/src/main/res/layout/fragment_room_play_center_panel.xml
  61. 19 24
      module/room/src/main/res/layout/layout_room_mic_on_members_selector.xml
  62. 2 2
      module/room/src/main/res/layout/layout_room_online_member.xml
  63. 6 4
      module/room/src/main/res/layout/layout_room_online_member_view.xml

+ 1 - 1
app/src/main/java/com/adealink/weparty/module/room/sdk/data/MicSeat.kt

@@ -35,7 +35,7 @@ enum class MicIndex(val index: Int) {
 
 
     companion object {
     companion object {
 
 
-        fun getMicIndex(index: Int): MicIndex {
+        fun getMicIndex(index: Int?): MicIndex {
             return when (index) {
             return when (index) {
                 127 -> OWNER
                 127 -> OWNER
                 1 -> MIC_1
                 1 -> MIC_1

BIN
app/src/main/res/drawable-xhdpi/common_coin_gray_12_ic.png


BIN
app/src/main/res/drawable-xhdpi/common_transparent_arrow_down_16_ic.png


BIN
app/src/main/res/drawable-xhdpi/common_transparent_arrow_up_ic.png


BIN
app/src/main/res/drawable-xhdpi/gift_item_member_owner_tag_ic.png


BIN
app/src/main/res/drawable-xhdpi/gift_item_member_owner_tag_selected_ic.png


+ 2 - 2
app/src/main/res/drawable/common_gray_radius_6_bg.xml → app/src/main/res/drawable/gift_item_member_other_index_bg.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
     android:shape="rectangle">
-    <solid android:color="#ff46484d" />
-    <corners android:radius="6dp" />
+    <corners android:radius="24dp" />
+    <solid android:color="@color/color_777777" />
 </shape>
 </shape>

+ 6 - 0
app/src/main/res/drawable/gift_item_member_other_index_selected_bg.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="24dp" />
+    <solid android:color="@color/color_app_main" />
+</shape>

+ 1 - 2
app/src/main/res/drawable/common_blue_radius_6_bg.xml → app/src/main/res/drawable/room_play_center_panel_bg.xml

@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
     android:shape="rectangle">
-    <solid android:color="#ff04e0da" />
-    <corners android:radius="6dp" />
+    <solid android:color="@color/color_E6161616" />
 </shape>
 </shape>

+ 18 - 7
app/src/main/res/layout/gift_item_member_select.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="wrap_content"
     android:layout_width="wrap_content"
     android:layout_height="34dp">
     android:layout_height="34dp">
 
 
@@ -16,20 +17,30 @@
         app:roundAsCircle="true"
         app:roundAsCircle="true"
         app:roundingBorderWidth="1dp" />
         app:roundingBorderWidth="1dp" />
 
 
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/owner_index"
+        android:layout_width="12dp"
+        android:layout_height="12dp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="@id/avatar"
+        app:layout_constraintEnd_toEndOf="@id/avatar"
+        app:srcCompat="@drawable/gift_item_member_owner_tag_ic"
+        tools:visibility="visible" />
+
     <androidx.appcompat.widget.AppCompatTextView
     <androidx.appcompat.widget.AppCompatTextView
         android:id="@+id/index"
         android:id="@+id/index"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="12dp"
         android:layout_height="12dp"
-        android:layout_marginTop="22dp"
-        android:background="@drawable/common_blue_radius_6_bg"
-        android:gravity="center_vertical"
+        android:background="@drawable/gift_item_member_other_index_bg"
+        android:gravity="center"
+        android:includeFontPadding="false"
+        android:minWidth="12dp"
         android:paddingHorizontal="4dp"
         android:paddingHorizontal="4dp"
-        android:drawablePadding="2dp"
-        android:text="@string/common_host"
         android:textColor="@color/white"
         android:textColor="@color/white"
         android:textSize="9sp"
         android:textSize="9sp"
+        app:layout_constraintBottom_toBottomOf="@id/avatar"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        tools:ignore="SmallSp"
+        tools:text="1" />
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 1
app/src/main/res/values/colors.xml

@@ -925,7 +925,8 @@
     <color name="color_1AFF50AE">#1AFF50AE</color>
     <color name="color_1AFF50AE">#1AFF50AE</color>
     <color name="color_FFFF50AE">#FFFF50AE</color>
     <color name="color_FFFF50AE">#FFFF50AE</color>
     <color name="color_FF9352FC">#FF9352FC</color>
     <color name="color_FF9352FC">#FF9352FC</color>
-
     <color name="color_FFFE634E">#FFFE634E</color>
     <color name="color_FFFE634E">#FFFE634E</color>
+    <color name="color_E6161616">#E6161616</color>
+    <color name="color_FFFFE99E">#FFFFE99E</color>
 
 
 </resources>
 </resources>

+ 0 - 3
module/gift/src/main/java/com/adealink/weparty/gift/GiftPageFragment.kt

@@ -44,9 +44,6 @@ import com.adealink.weparty.module.room.RoomModule
 import com.adealink.weparty.module.wallet.data.CurrencyNotSufficientError
 import com.adealink.weparty.module.wallet.data.CurrencyNotSufficientError
 import java.lang.Integer.min
 import java.lang.Integer.min
 
 
-/**
- * Created by sunxiaodong on 2021/5/10.
- */
 class GiftPageFragment : BaseGiftPageFragment(R.layout.fragment_gift_page),
 class GiftPageFragment : BaseGiftPageFragment(R.layout.fragment_gift_page),
     IGiftPageOperateListener, OnSendGiftComboListener {
     IGiftPageOperateListener, OnSendGiftComboListener {
 
 

+ 6 - 20
module/gift/src/main/java/com/adealink/weparty/gift/GiftPanelFragment.kt

@@ -6,15 +6,12 @@ import androidx.viewpager2.widget.ViewPager2
 import com.adealink.frame.aab.util.getCompatColor
 import com.adealink.frame.aab.util.getCompatColor
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.log.Log
+import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.weparty.commonui.BaseFragment
 import com.adealink.weparty.commonui.BaseFragment
 import com.adealink.weparty.commonui.viewpager.Tab
 import com.adealink.weparty.commonui.viewpager.Tab
 import com.adealink.weparty.commonui.viewpager.TabsPagerAdapter
 import com.adealink.weparty.commonui.viewpager.TabsPagerAdapter
-import com.adealink.frame.log.Log
-import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.weparty.module.backpack.UserPackageInfo
 import com.adealink.weparty.gift.backpack.GiftBackpackFragment
 import com.adealink.weparty.gift.backpack.GiftBackpackFragment
-import com.adealink.weparty.module.gift.data.GiftInfo
-import com.adealink.weparty.module.gift.data.GiftPageType
 import com.adealink.weparty.gift.data.TAG_GIFT
 import com.adealink.weparty.gift.data.TAG_GIFT
 import com.adealink.weparty.gift.databinding.FragmentGiftPanelBinding
 import com.adealink.weparty.gift.databinding.FragmentGiftPanelBinding
 import com.adealink.weparty.gift.databinding.ItemGiftTabBinding
 import com.adealink.weparty.gift.databinding.ItemGiftTabBinding
@@ -24,14 +21,14 @@ import com.adealink.weparty.gift.stat.GiftPanelStatEvent
 import com.adealink.weparty.gift.viewmodel.GiftPanelViewModel
 import com.adealink.weparty.gift.viewmodel.GiftPanelViewModel
 import com.adealink.weparty.gift.viewmodel.GiftViewModel
 import com.adealink.weparty.gift.viewmodel.GiftViewModel
 import com.adealink.weparty.gift.viewmodel.GiftViewModelFactory
 import com.adealink.weparty.gift.viewmodel.GiftViewModelFactory
+import com.adealink.weparty.module.backpack.UserPackageInfo
 import com.adealink.weparty.module.gift.IGiftPanelFragment
 import com.adealink.weparty.module.gift.IGiftPanelFragment
+import com.adealink.weparty.module.gift.data.GiftInfo
+import com.adealink.weparty.module.gift.data.GiftPageType
 import com.google.android.material.tabs.TabLayout
 import com.google.android.material.tabs.TabLayout
 import com.google.android.material.tabs.TabLayoutMediator
 import com.google.android.material.tabs.TabLayoutMediator
 import com.adealink.weparty.R as APP_R
 import com.adealink.weparty.R as APP_R
 
 
-/**
- * Created by sunxiaodong on 2021/5/10.
- */
 class GiftPanelFragment : BaseFragment(R.layout.fragment_gift_panel), IGiftPanelFragment {
 class GiftPanelFragment : BaseFragment(R.layout.fragment_gift_panel), IGiftPanelFragment {
 
 
     companion object {
     companion object {
@@ -104,17 +101,6 @@ class GiftPanelFragment : BaseFragment(R.layout.fragment_gift_panel), IGiftPanel
                 giftViewModel.selectGiftPage(giftTypes.getOrNull(position) ?: GiftPageType.NORMAL)
                 giftViewModel.selectGiftPage(giftTypes.getOrNull(position) ?: GiftPageType.NORMAL)
             }
             }
 
 
-            override fun onPageScrolled(
-                position: Int,
-                positionOffset: Float,
-                positionOffsetPixels: Int,
-            ) {
-                super.onPageScrolled(position, positionOffset, positionOffsetPixels)
-            }
-
-            override fun onPageScrollStateChanged(state: Int) {
-                super.onPageScrollStateChanged(state)
-            }
         })
         })
         binding.backpackIv.setOnClickListener {
         binding.backpackIv.setOnClickListener {
             binding.viewPager.setCurrentItem(adapter.itemCount - 1, false)
             binding.viewPager.setCurrentItem(adapter.itemCount - 1, false)
@@ -200,7 +186,7 @@ class GiftPanelFragment : BaseFragment(R.layout.fragment_gift_panel), IGiftPanel
             if (isSelected) {
             if (isSelected) {
                 customViewBinding.tabTitle.setTextColor(getCompatColor(APP_R.color.white))
                 customViewBinding.tabTitle.setTextColor(getCompatColor(APP_R.color.white))
             } else {
             } else {
-                customViewBinding.tabTitle.setTextColor(getCompatColor(APP_R.color.color_80FFFFFF))
+                customViewBinding.tabTitle.setTextColor(getCompatColor(APP_R.color.color_66FFFFFF))
             }
             }
         }
         }
     }
     }

+ 0 - 3
module/gift/src/main/java/com/adealink/weparty/gift/SendGiftPanelFragment.kt

@@ -59,9 +59,6 @@ import com.adealink.weparty.module.wallet.data.CurrencyNotSufficientError
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.launch
 import com.adealink.weparty.R as APP_R
 import com.adealink.weparty.R as APP_R
 
 
-/**
- * Created by sunxiaodong on 2021/11/4.
- */
 @RouterUri(path = [Gift.SendPanel.PATH], desc = "送礼面板")
 @RouterUri(path = [Gift.SendPanel.PATH], desc = "送礼面板")
 class SendGiftPanelFragment : BaseFragment(R.layout.fragment_send_gift_panel) {
 class SendGiftPanelFragment : BaseFragment(R.layout.fragment_send_gift_panel) {
 
 

+ 1 - 1
module/gift/src/main/java/com/adealink/weparty/gift/adapter/GiftPanelAvatarSelectItemViewBinder.kt

@@ -52,7 +52,7 @@ class GiftPanelAvatarSelectItemViewBinder(
             binding.avatar.hierarchy.roundingParams =
             binding.avatar.hierarchy.roundingParams =
                 binding.avatar.hierarchy.roundingParams?.apply {
                 binding.avatar.hierarchy.roundingParams?.apply {
                     borderColor =
                     borderColor =
-                        getCompatColor(if (selectItem.isSelected) APP_R.color.color_18E3EB else APP_R.color.transparent)
+                        getCompatColor(if (selectItem.isSelected) APP_R.color.color_app_main else APP_R.color.transparent)
                 }
                 }
         }
         }
 
 

+ 11 - 63
module/gift/src/main/java/com/adealink/weparty/gift/adapter/NormalGiftItemViewBinder.kt

@@ -5,34 +5,28 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.View
 import android.view.ViewGroup
 import android.view.ViewGroup
 import androidx.appcompat.widget.AppCompatTextView
 import androidx.appcompat.widget.AppCompatTextView
-import androidx.core.graphics.toColorInt
 import androidx.core.view.isVisible
 import androidx.core.view.isVisible
 import com.adealink.frame.aab.util.getCompatColor
 import com.adealink.frame.aab.util.getCompatColor
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.guide.GuideCenter
 import com.adealink.frame.guide.GuideCenter
 import com.adealink.frame.util.setLeftDrawable
 import com.adealink.frame.util.setLeftDrawable
 import com.adealink.frame.util.timeToShortHMS
 import com.adealink.frame.util.timeToShortHMS
-import com.adealink.weparty.commonui.drawabletoolbox.FluidColorfulFrameDrawableBuilder
-import com.adealink.weparty.commonui.ext.dpf
 import com.adealink.weparty.commonui.ext.gone
 import com.adealink.weparty.commonui.ext.gone
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
 import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
 import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
 import com.adealink.weparty.gift.R
 import com.adealink.weparty.gift.R
-import com.adealink.weparty.module.gift.data.FreeGiftStatus
-import com.adealink.weparty.module.gift.data.GiftInfo
 import com.adealink.weparty.gift.data.NormalGiftListItemData
 import com.adealink.weparty.gift.data.NormalGiftListItemData
 import com.adealink.weparty.gift.databinding.ItemNormalGiftBinding
 import com.adealink.weparty.gift.databinding.ItemNormalGiftBinding
-import com.adealink.weparty.module.gift.guide.GiftGuideType
 import com.adealink.weparty.gift.listener.IGiftPageOperateListener
 import com.adealink.weparty.gift.listener.IGiftPageOperateListener
+import com.adealink.weparty.module.gift.data.FreeGiftStatus
+import com.adealink.weparty.module.gift.data.GiftInfo
+import com.adealink.weparty.module.gift.guide.GiftGuideType
 import com.adealink.weparty.module.gift.view.OnSendGiftComboListener
 import com.adealink.weparty.module.gift.view.OnSendGiftComboListener
 import com.adealink.weparty.module.gift.view.SendGiftComboView
 import com.adealink.weparty.module.gift.view.SendGiftComboView
 import java.lang.ref.WeakReference
 import java.lang.ref.WeakReference
 import com.adealink.weparty.R as APP_R
 import com.adealink.weparty.R as APP_R
 
 
-/**
- * Created by sunxiaodong on 2021/5/10.
- */
 class NormalGiftItemViewBinder(
 class NormalGiftItemViewBinder(
     private val l: IGiftPageOperateListener,
     private val l: IGiftPageOperateListener,
     private val sendGiftComboListener: OnSendGiftComboListener
     private val sendGiftComboListener: OnSendGiftComboListener
@@ -41,9 +35,7 @@ class NormalGiftItemViewBinder(
 
 
     override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): ViewHolder {
     override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): ViewHolder {
         val binding = ItemNormalGiftBinding.inflate(inflater, parent, false)
         val binding = ItemNormalGiftBinding.inflate(inflater, parent, false)
-        return ViewHolder(binding).apply {
-            initView()
-        }
+        return ViewHolder(binding)
     }
     }
 
 
     override fun onBindViewHolder(holder: ViewHolder, item: NormalGiftListItemData) {
     override fun onBindViewHolder(holder: ViewHolder, item: NormalGiftListItemData) {
@@ -55,38 +47,6 @@ class NormalGiftItemViewBinder(
 
 
         private var item: NormalGiftListItemData? = null
         private var item: NormalGiftListItemData? = null
         private var priceUpdateTask = PriceUpdateTask()
         private var priceUpdateTask = PriceUpdateTask()
-        fun initView() {
-            val drawable = binding.vFluidFrame.getFluidFrameDrawable()
-            if (drawable == null) {
-                binding.vFluidFrame.setFluidFrameDrawable(
-                    FluidColorfulFrameDrawableBuilder()
-                        .radius(8.dpf())
-                        .strokeWidth(2.dpf())
-                        .colors(
-                            intArrayOf(
-                                "#0015E3E9".toColorInt(), //
-                                "#15E3E9".toColorInt(), // 青色
-                                "#0015E3E9".toColorInt(), //
-                                "#003BE8D0".toColorInt(), //
-                                "#FDFF53".toColorInt(), // 黄绿色
-                                "#003BE8D0".toColorInt(), //
-                            )
-                        )
-                        .positions(
-                            floatArrayOf(
-                                0f,
-                                0.17f,
-                                0.33f,
-                                0.50f,
-                                0.67f,
-                                0.84f
-                            )
-                        )
-                        .duration(4000L)
-                        .build()
-                )
-            }
-        }
 
 
         fun update(item: NormalGiftListItemData) {
         fun update(item: NormalGiftListItemData) {
             this.item = item
             this.item = item
@@ -148,13 +108,15 @@ class NormalGiftItemViewBinder(
                 val status = item.giftInfo.getFreeGiftStatus()
                 val status = item.giftInfo.getFreeGiftStatus()
                 when (status.first) {
                 when (status.first) {
                     FreeGiftStatus.UN_READY -> {
                     FreeGiftStatus.UN_READY -> {
-                        textView.setTextColor(getCompatColor(com.adealink.weparty.R.color.color_FF05E1DB))
+                        textView.setTextColor(getCompatColor(com.adealink.weparty.R.color.color_FFFFE99E))
                         textView.text = timeToShortHMS(status.second * 1000)
                         textView.text = timeToShortHMS(status.second * 1000)
                     }
                     }
+
                     FreeGiftStatus.READY -> {
                     FreeGiftStatus.READY -> {
-                        textView.setTextColor(getCompatColor(com.adealink.weparty.R.color.color_FF05E1DB))
+                        textView.setTextColor(getCompatColor(com.adealink.weparty.R.color.color_FFFFE99E))
                         textView.text = getCompatString(R.string.gift_free_gift_is_ready)
                         textView.text = getCompatString(R.string.gift_free_gift_is_ready)
                     }
                     }
+
                     FreeGiftStatus.USED_UP -> {
                     FreeGiftStatus.USED_UP -> {
                         textView.setTextColor(getCompatColor(com.adealink.weparty.R.color.color_66FFFFFF))
                         textView.setTextColor(getCompatColor(com.adealink.weparty.R.color.color_66FFFFFF))
                         textView.text = getCompatString(R.string.gift_free_gift_is_used_up)
                         textView.text = getCompatString(R.string.gift_free_gift_is_used_up)
@@ -168,25 +130,11 @@ class NormalGiftItemViewBinder(
         }
         }
 
 
         private fun updateSelected(binding: ItemNormalGiftBinding, isSelected: Boolean, giftInfo: GiftInfo) {
         private fun updateSelected(binding: ItemNormalGiftBinding, isSelected: Boolean, giftInfo: GiftInfo) {
-            binding.root.isSelected = true
             //更新选中背景
             //更新选中背景
-            if (giftInfo.isFreeGift()) {
-                //免费礼物
-                binding.clContent.setBackgroundResource(R.drawable.gift_item_for_free_gift_select_bg)
-                binding.clContent.isSelected = isSelected
-                if (isSelected) {
-                    binding.vFluidFrame.show()
-                    binding.vFluidFrame.startFluid()
-                } else {
-                    binding.vFluidFrame.cancelFluid()
-                    binding.vFluidFrame.gone()
-                }
+            if (isSelected) {
+                binding.ivSelected.show()
             } else {
             } else {
-                //普通礼物
-                binding.vFluidFrame.cancelFluid()
-                binding.vFluidFrame.gone()
-                binding.clContent.setBackgroundResource(R.drawable.gift_item_select_bg)
-                binding.clContent.isSelected = isSelected
+                binding.ivSelected.gone()
             }
             }
             //更新选中文案
             //更新选中文案
             if (isSelected) {
             if (isSelected) {

+ 6 - 4
module/gift/src/main/java/com/adealink/weparty/gift/adapter/TimeLimitGiftItemViewBinder.kt

@@ -6,12 +6,14 @@ import android.view.View
 import android.view.ViewGroup
 import android.view.ViewGroup
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.base.fastLazy
+import com.adealink.weparty.commonui.ext.gone
+import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
 import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
 import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
-import com.adealink.weparty.module.gift.data.GiftInfo
 import com.adealink.weparty.gift.data.TimeLimitGiftItemData
 import com.adealink.weparty.gift.data.TimeLimitGiftItemData
 import com.adealink.weparty.gift.databinding.ItemLimitTimeGiftBinding
 import com.adealink.weparty.gift.databinding.ItemLimitTimeGiftBinding
 import com.adealink.weparty.gift.listener.IGiftPageOperateListener
 import com.adealink.weparty.gift.listener.IGiftPageOperateListener
+import com.adealink.weparty.module.gift.data.GiftInfo
 import java.lang.ref.WeakReference
 import java.lang.ref.WeakReference
 import java.util.Locale
 import java.util.Locale
 import com.adealink.weparty.R as APP_R
 import com.adealink.weparty.R as APP_R
@@ -58,10 +60,10 @@ class TimeLimitGiftItemViewBinder(
         @SuppressLint("SetTextI18n")
         @SuppressLint("SetTextI18n")
         fun update(giftItem: TimeLimitGiftItemData) {
         fun update(giftItem: TimeLimitGiftItemData) {
             if (giftItem.isSelected) {
             if (giftItem.isSelected) {
-                binding.root.isSelected = true
+                binding.ivSelected.show()
             } else {
             } else {
                 giftIconAnimator.cancel()
                 giftIconAnimator.cancel()
-                binding.root.isSelected = false
+                binding.ivSelected.gone()
             }
             }
             this.giftItem = giftItem
             this.giftItem = giftItem
             binding.icon.setImageUrl(giftItem.giftInfo.iconUrl)
             binding.icon.setImageUrl(giftItem.giftInfo.iconUrl)
@@ -74,7 +76,7 @@ class TimeLimitGiftItemViewBinder(
 
 
         private fun onGiftSelected(giftInfo: GiftInfo) {
         private fun onGiftSelected(giftInfo: GiftInfo) {
             giftIconAnimator.start()
             giftIconAnimator.start()
-            binding.root.isSelected = true
+            binding.ivSelected.show()
             l.onGiftSelected(giftInfo)
             l.onGiftSelected(giftInfo)
         }
         }
 
 

+ 3 - 3
module/gift/src/main/java/com/adealink/weparty/gift/backpack/GiftBackpackItemViewBinder.kt

@@ -86,16 +86,16 @@ class GiftBackpackItemViewBinder(private val l: IGiftBackpackOperationListener)
             }
             }
 
 
             if (backpackItem.isSelected) {
             if (backpackItem.isSelected) {
-                binding.root.isSelected = true
+                binding.ivSelected.show()
             } else {
             } else {
                 giftIconAnimator.cancel()
                 giftIconAnimator.cancel()
-                binding.root.isSelected = false
+                binding.ivSelected.gone()
             }
             }
         }
         }
 
 
         private fun onBackpackItemSelected(userPackageInfo: UserPackageInfo) {
         private fun onBackpackItemSelected(userPackageInfo: UserPackageInfo) {
             giftIconAnimator.start()
             giftIconAnimator.start()
-            binding.root.isSelected = true
+            binding.ivSelected.show()
             l.onBackpackItemSelected(userPackageInfo)
             l.onBackpackItemSelected(userPackageInfo)
         }
         }
     }
     }

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

@@ -27,9 +27,6 @@ import com.qmuiteam.qmui.widget.popup.QMUIPopups
 import com.qmuiteam.qmui.widget.util.QMUIDisplayHelper
 import com.qmuiteam.qmui.widget.util.QMUIDisplayHelper
 import com.adealink.weparty.R as APP_R
 import com.adealink.weparty.R as APP_R
 
 
-/**
- * Created by sunxiaodong on 2021/5/12.
- */
 class GiftPanelBottomOperateComp(
 class GiftPanelBottomOperateComp(
     lifecycleOwner: LifecycleOwner,
     lifecycleOwner: LifecycleOwner,
     private val binding: LayoutGiftPanelBottomOperateBinding,
     private val binding: LayoutGiftPanelBottomOperateBinding,
@@ -49,10 +46,7 @@ class GiftPanelBottomOperateComp(
 
 
     private fun initViews() {
     private fun initViews() {
         updateSelectCount(selectCount)
         updateSelectCount(selectCount)
-        binding.selectCount.setOnClickListener {
-            popupGiftCountSelectWindow()
-        }
-        binding.selectArrow.setOnClickListener {
+        binding.sendLayout.setOnClickListener {
             popupGiftCountSelectWindow()
             popupGiftCountSelectWindow()
         }
         }
         ProfileModule.getMyUserInfo()?.vipLevel?.let {
         ProfileModule.getMyUserInfo()?.vipLevel?.let {

BIN
module/gift/src/main/res/drawable-xhdpi/gift_backpack_ic.png


BIN
module/gift/src/main/res/drawable-xhdpi/gift_item_selected_ic.png


+ 0 - 15
module/gift/src/main/res/drawable/gift_item_for_free_gift_select_bg.xml

@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_selected="true">
-        <shape android:shape="rectangle">
-            <solid android:color="#1AC3EDEA"/>
-            <corners android:radius="8dp" />
-        </shape>
-    </item>
-    <item android:state_selected="false">
-        <shape android:shape="rectangle">
-            <stroke android:width="1dp" android:color="@color/transparent" />
-            <corners android:radius="8dp" />
-        </shape>
-    </item>
-</selector>

+ 0 - 16
module/gift/src/main/res/drawable/gift_item_select_bg.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_selected="true">
-        <shape android:shape="rectangle">
-            <stroke android:width="1dp" android:color="#ff15e3e9" />
-            <solid android:color="#1AC3EDEA"/>
-            <corners android:radius="8dp" />
-        </shape>
-    </item>
-    <item android:state_selected="false">
-        <shape android:shape="rectangle">
-            <stroke android:width="1dp" android:color="@color/transparent" />
-            <corners android:radius="8dp" />
-        </shape>
-    </item>
-</selector>

+ 1 - 1
module/gift/src/main/res/drawable/gift_panel_send_bg.xml

@@ -3,7 +3,7 @@
     android:shape="rectangle">
     android:shape="rectangle">
     <stroke
     <stroke
         android:width="1dp"
         android:width="1dp"
-        android:color="#ff0ce2e1" />
+        android:color="@color/color_app_main" />
     <corners
     <corners
         android:bottomLeftRadius="14dp"
         android:bottomLeftRadius="14dp"
         android:bottomRightRadius="14dp"
         android:bottomRightRadius="14dp"

+ 3 - 3
module/gift/src/main/res/layout/fragment_gift_panel.xml

@@ -40,9 +40,9 @@
 
 
         <androidx.appcompat.widget.AppCompatImageView
         <androidx.appcompat.widget.AppCompatImageView
             android:id="@+id/backpack_iv"
             android:id="@+id/backpack_iv"
-            android:layout_width="28dp"
-            android:layout_height="28dp"
-            android:layout_marginEnd="20dp"
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:layout_marginEnd="12dp"
             android:alpha="0.5"
             android:alpha="0.5"
             android:src="@drawable/gift_backpack_ic"
             android:src="@drawable/gift_backpack_ic"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintBottom_toBottomOf="parent"

+ 1 - 1
module/gift/src/main/res/layout/item_avatar_gift_panel.xml

@@ -8,5 +8,5 @@
     app:failureImage="@drawable/common_default_avatar_ic"
     app:failureImage="@drawable/common_default_avatar_ic"
     app:placeholderImage="@drawable/common_default_avatar_ic"
     app:placeholderImage="@drawable/common_default_avatar_ic"
     app:roundAsCircle="true"
     app:roundAsCircle="true"
-    app:roundingBorderColor="@color/color_18E3EB"
+    app:roundingBorderColor="@color/color_app_main"
     app:roundingBorderWidth="1dp" />
     app:roundingBorderWidth="1dp" />

+ 13 - 1
module/gift/src/main/res/layout/item_gift_backpack.xml

@@ -3,10 +3,22 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    android:background="@drawable/gift_item_select_bg"
+    xmlns:tools="http://schemas.android.com/tools"
     android:paddingTop="4dp"
     android:paddingTop="4dp"
     android:paddingBottom="5dp">
     android:paddingBottom="5dp">
 
 
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/iv_selected"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="178:136"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:srcCompat="@drawable/gift_item_selected_ic"
+        tools:visibility="visible" />
+
     <androidx.constraintlayout.widget.ConstraintLayout
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/icon_cl"
         android:id="@+id/icon_cl"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"

+ 1 - 10
module/gift/src/main/res/layout/item_gift_tab.xml

@@ -10,7 +10,7 @@
         android:id="@+id/tab_title"
         android:id="@+id/tab_title"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:layout_height="match_parent"
-        android:textColor="@color/color_80FFFFFF"
+        android:textColor="@color/color_66FFFFFF"
         android:textSize="13sp"
         android:textSize="13sp"
         android:gravity="center"
         android:gravity="center"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
@@ -18,13 +18,4 @@
         android:paddingHorizontal="20dp"
         android:paddingHorizontal="20dp"
         tools:text="Gift" />
         tools:text="Gift" />
 
 
-    <View
-        android:id="@+id/v_right_divider"
-        android:layout_width="0.5dp"
-        android:layout_height="10dp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        android:background="@color/color_80FFFFFF"
-        app:layout_constraintBottom_toBottomOf="parent"/>
-
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 16 - 6
module/gift/src/main/res/layout/item_limit_time_gift.xml

@@ -4,10 +4,20 @@
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    app:layout_constraintTop_toTopOf="parent"
-    app:layout_constraintBottom_toBottomOf="parent"
-    android:background="@drawable/gift_item_select_bg"
-    android:paddingVertical="4dp">
+    android:paddingVertical="4dp"
+    tools:layout_width="100dp">
+
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/iv_selected"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="178:136"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:srcCompat="@drawable/gift_item_selected_ic"
+        tools:visibility="visible" />
 
 
     <com.adealink.frame.image.view.NetworkImageView
     <com.adealink.frame.image.view.NetworkImageView
         android:id="@+id/icon"
         android:id="@+id/icon"
@@ -94,10 +104,10 @@
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="3dp"
         android:layout_marginTop="3dp"
         android:drawablePadding="2dp"
         android:drawablePadding="2dp"
-        android:gravity="center_vertical"
+        android:gravity="center"
         android:includeFontPadding="false"
         android:includeFontPadding="false"
         android:textColor="@color/color_66FFFFFF"
         android:textColor="@color/color_66FFFFFF"
-        android:textSize="9sp"
+        android:textSize="10sp"
         app:drawableStartCompat="@drawable/common_coin_gray_12_ic"
         app:drawableStartCompat="@drawable/common_coin_gray_12_ic"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintStart_toStartOf="parent"

+ 19 - 16
module/gift/src/main/res/layout/item_normal_gift.xml

@@ -3,7 +3,20 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    tools:layout_width="100dp">
+
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/iv_selected"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="178:136"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:srcCompat="@drawable/gift_item_selected_ic"
+        tools:visibility="visible" />
 
 
     <androidx.constraintlayout.widget.ConstraintLayout
     <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/cl_content"
         android:id="@+id/cl_content"
@@ -37,12 +50,13 @@
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="2dp"
             android:layout_marginTop="2dp"
             android:gravity="center"
             android:gravity="center"
+            android:includeFontPadding="false"
+            android:singleLine="true"
             android:textColor="@color/white"
             android:textColor="@color/white"
-            android:textSize="10sp"
+            android:textSize="12sp"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/icon"
-            tools:ignore="SmallSp" />
+            app:layout_constraintTop_toBottomOf="@+id/icon" />
 
 
         <androidx.appcompat.widget.AppCompatTextView
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/price"
             android:id="@+id/price"
@@ -53,7 +67,7 @@
             android:gravity="center_vertical"
             android:gravity="center_vertical"
             android:includeFontPadding="false"
             android:includeFontPadding="false"
             android:textColor="@color/color_66FFFFFF"
             android:textColor="@color/color_66FFFFFF"
-            android:textSize="9sp"
+            android:textSize="10sp"
             app:drawableStartCompat="@drawable/common_coin_gray_12_ic"
             app:drawableStartCompat="@drawable/common_coin_gray_12_ic"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintStart_toStartOf="parent"
@@ -71,17 +85,6 @@
 
 
     </androidx.constraintlayout.widget.ConstraintLayout>
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 
-
-    <com.adealink.weparty.commonui.widget.FluidFrameView
-        android:id="@+id/v_fluid_frame"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:visibility="gone"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
     <View
     <View
         android:id="@+id/combo_mask"
         android:id="@+id/combo_mask"
         android:layout_width="match_parent"
         android:layout_width="match_parent"

+ 19 - 4
module/gift/src/main/res/layout/item_recharge.xml

@@ -1,10 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    android:background="@drawable/gift_item_select_bg"
-    android:paddingVertical="4dp">
+    android:paddingVertical="4dp"
+    tools:layout_width="100dp">
+
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/iv_selected"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="178:136"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:srcCompat="@drawable/gift_item_selected_ic"
+        tools:visibility="visible" />
 
 
     <com.adealink.frame.image.view.NetworkImageView
     <com.adealink.frame.image.view.NetworkImageView
         android:id="@+id/icon"
         android:id="@+id/icon"
@@ -20,10 +33,12 @@
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="4dp"
         android:layout_marginTop="4dp"
-        android:textColor="@color/white"
+        android:includeFontPadding="false"
+        android:textColor="@color/color_66FFFFFF"
         android:textSize="10sp"
         android:textSize="10sp"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/icon" />
+        app:layout_constraintTop_toBottomOf="@+id/icon"
+        tools:ignore="SmallSp" />
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 16 - 15
module/gift/src/main/res/layout/layout_gift_panel_bottom_operate.xml

@@ -8,7 +8,7 @@
         android:id="@+id/currency_layout"
         android:id="@+id/currency_layout"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
+        android:layout_marginStart="12dp"
         android:background="@drawable/gift_panel_currency_bg"
         android:background="@drawable/gift_panel_currency_bg"
         android:orientation="horizontal"
         android:orientation="horizontal"
         android:paddingHorizontal="8dp"
         android:paddingHorizontal="8dp"
@@ -17,7 +17,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent">
         app:layout_constraintTop_toTopOf="parent">
 
 
-        <ImageView
+        <androidx.appcompat.widget.AppCompatImageView
             android:id="@+id/gold_icon"
             android:id="@+id/gold_icon"
             android:layout_width="15dp"
             android:layout_width="15dp"
             android:layout_height="15dp"
             android:layout_height="15dp"
@@ -34,7 +34,7 @@
             android:textColor="@color/white"
             android:textColor="@color/white"
             android:textSize="14sp" />
             android:textSize="14sp" />
 
 
-        <ImageView
+        <androidx.appcompat.widget.AppCompatImageView
             android:id="@+id/gold_arrow"
             android:id="@+id/gold_arrow"
             android:layout_width="15dp"
             android:layout_width="15dp"
             android:layout_height="15dp"
             android:layout_height="15dp"
@@ -50,8 +50,8 @@
         android:layout_width="70dp"
         android:layout_width="70dp"
         android:layout_height="28dp"
         android:layout_height="28dp"
         android:layout_marginStart="8dp"
         android:layout_marginStart="8dp"
-        android:visibility="gone"
         android:src="@drawable/gift_panel_join_vip_entry_ic"
         android:src="@drawable/gift_panel_join_vip_entry_ic"
+        android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toEndOf="@+id/currency_layout"
         app:layout_constraintStart_toEndOf="@+id/currency_layout"
         app:layout_constraintTop_toTopOf="parent" />
         app:layout_constraintTop_toTopOf="parent" />
@@ -60,33 +60,34 @@
         android:id="@+id/send_layout"
         android:id="@+id/send_layout"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="28dp"
         android:layout_height="28dp"
-        android:layout_marginEnd="16dp"
+        android:layout_marginEnd="12dp"
         android:background="@drawable/gift_panel_send_bg"
         android:background="@drawable/gift_panel_send_bg"
-        android:minWidth="120dp"
+        android:minWidth="110dp"
         android:orientation="horizontal"
         android:orientation="horizontal"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent">
         app:layout_constraintTop_toTopOf="parent">
 
 
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/select_arrow"
+            android:layout_width="12dp"
+            android:layout_height="12dp"
+            android:layout_gravity="center_vertical"
+            android:layout_marginStart="8dp"
+            android:adjustViewBounds="true"
+            android:src="@drawable/common_transparent_arrow_up_ic" />
+
         <androidx.appcompat.widget.AppCompatTextView
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/select_count"
             android:id="@+id/select_count"
             android:layout_width="0dp"
             android:layout_width="0dp"
             android:layout_height="match_parent"
             android:layout_height="match_parent"
             android:layout_gravity="center_vertical"
             android:layout_gravity="center_vertical"
             android:layout_weight="1"
             android:layout_weight="1"
-            android:gravity="center_vertical|end"
+            android:gravity="center"
             android:includeFontPadding="false"
             android:includeFontPadding="false"
             android:textColor="@color/white"
             android:textColor="@color/white"
             android:textSize="14sp" />
             android:textSize="14sp" />
 
 
-        <ImageView
-            android:id="@+id/select_arrow"
-            android:layout_width="16dp"
-            android:layout_height="match_parent"
-            android:layout_gravity="center_vertical"
-            android:adjustViewBounds="true"
-            android:src="@drawable/common_transparent_arrow_down_16_ic" />
-
         <androidx.appcompat.widget.AppCompatTextView
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/send_btn"
             android:id="@+id/send_btn"
             android:layout_width="66dp"
             android:layout_width="66dp"

+ 6 - 6
module/room/src/main/java/com/adealink/weparty/room/attr/widget/RoomMicModeSwitcher.kt

@@ -94,16 +94,16 @@ class RoomMicModeSwitcher @JvmOverloads constructor(
         private const val ANIM_DURATION = 1500L
         private const val ANIM_DURATION = 1500L
 
 
         private val CHAT_STYLE: IntArray = intArrayOf(
         private val CHAT_STYLE: IntArray = intArrayOf(
-            Color.parseColor("#ff7571ef"),
-            Color.parseColor("#ff58b9ee")
+            Color.parseColor("#FFFF50AE"),
+            Color.parseColor("#FFFF50AE")
         )
         )
         private val VIDEO_STYLE: IntArray = intArrayOf(
         private val VIDEO_STYLE: IntArray = intArrayOf(
-            Color.parseColor("#ff8b4eff"),
-            Color.parseColor("#fffb83ff")
+            Color.parseColor("#FF9352FC"),
+            Color.parseColor("#FF9352FC")
         )
         )
         private val GRAY_STYLE: IntArray = intArrayOf(
         private val GRAY_STYLE: IntArray = intArrayOf(
-            Color.parseColor("#ff5b5b65"),
-            Color.parseColor("#ff90929a")
+            Color.parseColor("#FFAAAAAA"),
+            Color.parseColor("#FFAAAAAA")
         )
         )
 
 
         private fun getStyleByType(type: RoomMicMode): IntArray {
         private fun getStyleByType(type: RoomMicMode): IntArray {

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

@@ -282,7 +282,7 @@ class ChatRoomBaseLayerFactory : IDynamicViewFactory<ConstraintLayout.LayoutPara
 
 
             R.id.id_chat_room_online_member_view -> {
             R.id.id_chat_room_online_member_view -> {
                 ConstraintLayout.LayoutParams(
                 ConstraintLayout.LayoutParams(
-                    ConstraintLayout.LayoutParams.WRAP_CONTENT,
+                    0,
                     ConstraintLayout.LayoutParams.WRAP_CONTENT
                     ConstraintLayout.LayoutParams.WRAP_CONTENT
                 ).apply {
                 ).apply {
                     topToBottom = R.id.mic_seat_fragment
                     topToBottom = R.id.mic_seat_fragment

+ 0 - 3
module/room/src/main/java/com/adealink/weparty/room/gift/RoomGiftPanelFragment.kt

@@ -25,9 +25,6 @@ import com.adealink.weparty.room.databinding.FragmentRoomGiftPanelBinding
 import com.adealink.weparty.room.micseat.view.select.HMicOnMembersSelectorComp
 import com.adealink.weparty.room.micseat.view.select.HMicOnMembersSelectorComp
 import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
 import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
 
 
-/**
- * Created by sunxiaodong on 2021/5/10.
- */
 @RouterUri(path = [Room.SendGiftPanel.PATH], desc = "房间送礼面板")
 @RouterUri(path = [Room.SendGiftPanel.PATH], desc = "房间送礼面板")
 class RoomGiftPanelFragment : BottomDialogFragment(R.layout.fragment_room_gift_panel) {
 class RoomGiftPanelFragment : BottomDialogFragment(R.layout.fragment_room_gift_panel) {
 
 

+ 2 - 2
module/room/src/main/java/com/adealink/weparty/room/member/RoomMemberInfoFragment.kt

@@ -622,7 +622,7 @@ class RoomMemberInfoFragment : BottomDialogFragment(R.layout.fragment_room_membe
             binding.followBanGiftCl.banBtn.updateWithThemeColor(CommonThemeColor.GRAY.value)
             binding.followBanGiftCl.banBtn.updateWithThemeColor(CommonThemeColor.GRAY.value)
 
 
             binding.giftBtn.isEnabled = false
             binding.giftBtn.isEnabled = false
-            binding.giftBtn.setImageResource(R.drawable.room_operate_gift_gray_44_ic)
+            binding.giftBtn.setImageResource(R.drawable.room_operate_gift_ic)
         } else {
         } else {
             binding.followBanGiftCl.root.isEnabled = true
             binding.followBanGiftCl.root.isEnabled = true
             binding.followBanGiftCl.followBtn.show()
             binding.followBanGiftCl.followBtn.show()
@@ -633,7 +633,7 @@ class RoomMemberInfoFragment : BottomDialogFragment(R.layout.fragment_room_membe
             binding.followBanGiftCl.banBtn.gone()
             binding.followBanGiftCl.banBtn.gone()
 
 
             binding.giftBtn.isEnabled = true
             binding.giftBtn.isEnabled = true
-            binding.giftBtn.setImageResource(R.drawable.room_operate_gift_green_44_ic)
+            binding.giftBtn.setImageResource(R.drawable.room_operate_gift_ic)
         }
         }
 
 
         binding.topTransparentClickArea.setOnClickListener {
         binding.topTransparentClickArea.setOnClickListener {

+ 17 - 1
module/room/src/main/java/com/adealink/weparty/room/member/comp/RoomOnlineMemberComp.kt

@@ -1,6 +1,9 @@
 package com.adealink.weparty.room.member.comp
 package com.adealink.weparty.room.member.comp
 
 
 import android.os.Bundle
 import android.os.Bundle
+import android.view.ViewGroup
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.core.view.updateLayoutParams
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.LifecycleOwner
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.mvvm.viewmodel.viewModels
 import com.adealink.frame.mvvm.viewmodel.viewModels
@@ -25,7 +28,7 @@ class RoomOnlineMemberComp(
     private val onlineMemberView: IDynamicView<RoomOnlineMemberDragView> by fastLazy {
     private val onlineMemberView: IDynamicView<RoomOnlineMemberDragView> by fastLazy {
         object : IDynamicView<RoomOnlineMemberDragView>(dynamicLayers, R.id.id_chat_room_online_member_view) {
         object : IDynamicView<RoomOnlineMemberDragView>(dynamicLayers, R.id.id_chat_room_online_member_view) {
             override fun onViewAdded(view: RoomOnlineMemberDragView) {
             override fun onViewAdded(view: RoomOnlineMemberDragView) {
-                view.getOnlineMemberView().setListener(object : RoomOnlineMemberView.OnClickListener {
+                view.setListener(object : RoomOnlineMemberView.OnClickListener {
                     override fun onAvatarClick(uid: Long) {
                     override fun onAvatarClick(uid: Long) {
                         this@RoomOnlineMemberComp.onAvatarClick(uid)
                         this@RoomOnlineMemberComp.onAvatarClick(uid)
                     }
                     }
@@ -33,6 +36,19 @@ class RoomOnlineMemberComp(
                     override fun onMemberCountClick() {
                     override fun onMemberCountClick() {
                         this@RoomOnlineMemberComp.onMemberCountClick()
                         this@RoomOnlineMemberComp.onMemberCountClick()
                     }
                     }
+
+                    override fun onExpandChanged(expand: Boolean) {
+                        if (expand) {
+                            view.updateLayoutParams<ViewGroup.LayoutParams> {
+                                width = ViewGroup.LayoutParams.MATCH_PARENT
+                            }
+                        } else {
+                            view.updateLayoutParams<ViewGroup.LayoutParams> {
+                                width = ViewGroup.LayoutParams.WRAP_CONTENT
+                            }
+                        }
+                        view.requestLayout()
+                    }
                 })
                 })
             }
             }
         }
         }

+ 32 - 0
module/room/src/main/java/com/adealink/weparty/room/member/widget/RoomOnlineMemberDragView.kt

@@ -4,6 +4,8 @@ import android.content.Context
 import android.util.AttributeSet
 import android.util.AttributeSet
 import android.view.LayoutInflater
 import android.view.LayoutInflater
 import android.view.MotionEvent
 import android.view.MotionEvent
+import android.view.ViewGroup
+import androidx.core.view.updateLayoutParams
 import com.adealink.frame.log.Log
 import com.adealink.frame.log.Log
 import com.adealink.weparty.commonui.drag.BaseDragView
 import com.adealink.weparty.commonui.drag.BaseDragView
 import com.adealink.weparty.commonui.drag.DragTouchEventDelegate
 import com.adealink.weparty.commonui.drag.DragTouchEventDelegate
@@ -21,6 +23,7 @@ class RoomOnlineMemberDragView @JvmOverloads constructor(
     private val binding = LayoutRoomOnlineMemberBinding.inflate(LayoutInflater.from(context), this)
     private val binding = LayoutRoomOnlineMemberBinding.inflate(LayoutInflater.from(context), this)
     private var isDragging = false
     private var isDragging = false
     override var resetToLastLocationAfterLayout = false
     override var resetToLastLocationAfterLayout = false
+    private var listener: RoomOnlineMemberView.OnClickListener? = null
 
 
     init {
     init {
         initView()
         initView()
@@ -69,7 +72,32 @@ class RoomOnlineMemberDragView @JvmOverloads constructor(
                     onLongPressCallback(e)
                     onLongPressCallback(e)
                 }
                 }
             })
             })
+        binding.ivOnlineMember.setListener(object : RoomOnlineMemberView.OnClickListener {
+            override fun onAvatarClick(uid: Long) {
+                listener?.onAvatarClick(uid)
+            }
 
 
+            override fun onMemberCountClick() {
+                listener?.onMemberCountClick()
+            }
+
+            override fun onExpandChanged(expand: Boolean) {
+                updateViewByExpandChanged(expand)
+                listener?.onExpandChanged(expand)
+            }
+        })
+    }
+
+    private fun updateViewByExpandChanged(expand: Boolean) {
+        if (expand) {
+            binding.ivOnlineMember.updateLayoutParams<LayoutParams> {
+                width = ViewGroup.LayoutParams.MATCH_PARENT
+            }
+        } else {
+            binding.ivOnlineMember.updateLayoutParams<LayoutParams> {
+                width = LayoutParams.WRAP_CONTENT
+            }
+        }
     }
     }
 
 
     override fun isDraggable(): Boolean {
     override fun isDraggable(): Boolean {
@@ -90,4 +118,8 @@ class RoomOnlineMemberDragView @JvmOverloads constructor(
             (touchDelegate as? DragTouchEventDelegate)?.onLongPressCallback(e)
             (touchDelegate as? DragTouchEventDelegate)?.onLongPressCallback(e)
         }
         }
     }
     }
+
+    fun setListener(listener: RoomOnlineMemberView.OnClickListener?) {
+        this.listener = listener
+    }
 }
 }

+ 9 - 15
module/room/src/main/java/com/adealink/weparty/room/member/widget/RoomOnlineMemberView.kt

@@ -33,6 +33,13 @@ class RoomOnlineMemberView @JvmOverloads constructor(
     private var isExpend = true //展开收起状态
     private var isExpend = true //展开收起状态
 
 
     init {
     init {
+        initView()
+    }
+
+    private fun initView() {
+        if (isInEditMode) {
+            return
+        }
         binding.root.apply {
         binding.root.apply {
             setBackgroundResource(R.drawable.room_online_member_bg)
             setBackgroundResource(R.drawable.room_online_member_bg)
             setPadding(4.dp(), 4.dp(), 4.dp(), 4.dp())
             setPadding(4.dp(), 4.dp(), 4.dp(), 4.dp())
@@ -54,6 +61,7 @@ class RoomOnlineMemberView @JvmOverloads constructor(
                 binding.ivFold.setImageResource(R.drawable.room_online_member_fold_ic)
                 binding.ivFold.setImageResource(R.drawable.room_online_member_fold_ic)
                 binding.rvMembers.show()
                 binding.rvMembers.show()
             }
             }
+            listener?.onExpandChanged(isExpend)
         }
         }
         binding.clMemberCount.setOnClickListener {
         binding.clMemberCount.setOnClickListener {
             listener?.onMemberCountClick()
             listener?.onMemberCountClick()
@@ -68,11 +76,6 @@ class RoomOnlineMemberView @JvmOverloads constructor(
         onlineMemberList.removeLast()
         onlineMemberList.removeLast()
         onlineMemberList.addFirst(RoomOnlineMemberItemData(member))
         onlineMemberList.addFirst(RoomOnlineMemberItemData(member))
         adapter.submitList(onlineMemberList)
         adapter.submitList(onlineMemberList)
-        if (onlineMemberList.isEmpty()) {
-            binding.rvMembers.gone()
-        } else {
-            binding.rvMembers.show()
-        }
     }
     }
 
 
     fun addMembers(members: List<UserInfo?>) {
     fun addMembers(members: List<UserInfo?>) {
@@ -81,22 +84,12 @@ class RoomOnlineMemberView @JvmOverloads constructor(
             onlineMemberList.addFirst(RoomOnlineMemberItemData(it))
             onlineMemberList.addFirst(RoomOnlineMemberItemData(it))
         }
         }
         adapter.submitList(onlineMemberList)
         adapter.submitList(onlineMemberList)
-        if (onlineMemberList.isEmpty()) {
-            binding.rvMembers.gone()
-        } else {
-            binding.rvMembers.show()
-        }
     }
     }
 
 
     fun setMembers(members: List<UserInfo?>) {
     fun setMembers(members: List<UserInfo?>) {
         onlineMemberList.clear()
         onlineMemberList.clear()
         onlineMemberList.addAll(members.map { RoomOnlineMemberItemData(it) })
         onlineMemberList.addAll(members.map { RoomOnlineMemberItemData(it) })
         adapter.submitList(onlineMemberList)
         adapter.submitList(onlineMemberList)
-        if (onlineMemberList.isEmpty()) {
-            binding.rvMembers.gone()
-        } else {
-            binding.rvMembers.show()
-        }
     }
     }
 
 
     fun setMemberCount(count: Long) {
     fun setMemberCount(count: Long) {
@@ -142,6 +135,7 @@ class RoomOnlineMemberView @JvmOverloads constructor(
     interface OnClickListener {
     interface OnClickListener {
         fun onAvatarClick(uid: Long)
         fun onAvatarClick(uid: Long)
         fun onMemberCountClick()
         fun onMemberCountClick()
+        fun onExpandChanged(expand: Boolean) {}
     }
     }
 
 
     companion object {
     companion object {

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

@@ -39,7 +39,6 @@ import com.adealink.weparty.R as APP_R
 
 
 
 
 /**
 /**
- * Created by sunxiaodong on 2021/5/10.
  * 水平多项选择器
  * 水平多项选择器
  */
  */
 class HMicOnMembersSelectorComp(
 class HMicOnMembersSelectorComp(

+ 45 - 18
module/room/src/main/java/com/adealink/weparty/room/micseat/view/select/adapter/MemberSelectItemViewBinder.kt

@@ -6,6 +6,8 @@ import com.adealink.frame.aab.util.getCompatColor
 import com.adealink.frame.aab.util.getCompatDrawable
 import com.adealink.frame.aab.util.getCompatDrawable
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.log.Log
 import com.adealink.frame.log.Log
+import com.adealink.weparty.commonui.ext.gone
+import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
 import com.adealink.weparty.commonui.recycleview.adapter.BindingViewHolder
 import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
 import com.adealink.weparty.commonui.recycleview.adapter.multitype.ItemViewBinder
 import com.adealink.weparty.databinding.GiftItemMemberSelectBinding
 import com.adealink.weparty.databinding.GiftItemMemberSelectBinding
@@ -17,9 +19,6 @@ import com.adealink.weparty.module.room.sdk.data.MicIndex
 import com.adealink.weparty.room.sdk.service.roomService
 import com.adealink.weparty.room.sdk.service.roomService
 import com.adealink.weparty.R as APP_R
 import com.adealink.weparty.R as APP_R
 
 
-/**
- * Created by sunxiaodong on 2021/8/7.
- */
 class MemberSelectItemViewBinder(
 class MemberSelectItemViewBinder(
     val memberInfoListener: IMemberInfoListener,
     val memberInfoListener: IMemberInfoListener,
     val memberSelectListener: IMemberSelectListener,
     val memberSelectListener: IMemberSelectListener,
@@ -48,7 +47,6 @@ class MemberSelectItemViewBinder(
         }
         }
 
 
         fun update(selectItem: SelectItem) {
         fun update(selectItem: SelectItem) {
-            Log.d("MemberSelectItemViewBinder", "selectItem:$selectItem")
             this.selectItem = selectItem
             this.selectItem = selectItem
             val micUid = selectItem.uid
             val micUid = selectItem.uid
             memberInfoListener.getMemberInfo(micUid) {
             memberInfoListener.getMemberInfo(micUid) {
@@ -63,13 +61,18 @@ class MemberSelectItemViewBinder(
             binding.avatar.hierarchy.roundingParams =
             binding.avatar.hierarchy.roundingParams =
                 binding.avatar.hierarchy.roundingParams?.apply {
                 binding.avatar.hierarchy.roundingParams?.apply {
                     borderColor =
                     borderColor =
-                        getCompatColor(if (selectItem.isSelected) APP_R.color.color_18E3EB else APP_R.color.transparent)
+                        getCompatColor(
+                            if (selectItem.isSelected) {
+                                APP_R.color.color_app_main
+                            } else {
+                                APP_R.color.transparent
+                            }
+                        )
                 }
                 }
-            binding.index.setCompoundDrawablesRelative(null, null, null, null)
             when {
             when {
                 MicIndex.isGameMicIndex(selectItem.micIndex) -> {
                 MicIndex.isGameMicIndex(selectItem.micIndex) -> {
                     val showIndex = MicIndex.getDisplayGameMicIndexInGiftPanel(selectItem.micIndex)
                     val showIndex = MicIndex.getDisplayGameMicIndexInGiftPanel(selectItem.micIndex)
-                    binding.index.text = when(showIndex) {
+                    binding.index.text = when (showIndex) {
                         null -> ""
                         null -> ""
                         else -> showIndex.toString()
                         else -> showIndex.toString()
                     }
                     }
@@ -79,29 +82,53 @@ class MemberSelectItemViewBinder(
                     binding.index.setBackgroundResource(APP_R.drawable.common_47484d_radius_6_bg)
                     binding.index.setBackgroundResource(APP_R.drawable.common_47484d_radius_6_bg)
                 }
                 }
 
 
+                //房主麦位
                 roomService.memberController.isJoinedRoomOwner(selectItem.uid) ||
                 roomService.memberController.isJoinedRoomOwner(selectItem.uid) ||
                         selectItem.micIndex == MicIndex.OWNER.index -> {
                         selectItem.micIndex == MicIndex.OWNER.index -> {
-                    binding.index.text = getCompatString(APP_R.string.common_host)
-                    binding.index.setBackgroundResource(APP_R.drawable.common_blue_radius_6_bg)
+                    binding.ownerIndex.show()
+                    binding.ownerIndex.setImageResource(
+                        if (selectItem.isSelected) {
+                            APP_R.drawable.gift_item_member_owner_tag_selected_ic
+                        } else {
+                            APP_R.drawable.gift_item_member_owner_tag_ic
+                        }
+                    )
+                    binding.index.gone()
                 }
                 }
 
 
+                // TODO: zhangfei 超级麦位样式
                 selectItem.micIndex == MicIndex.SUPER_MIC.index -> {
                 selectItem.micIndex == MicIndex.SUPER_MIC.index -> {
+                    binding.ownerIndex.gone()
+                    binding.index.show()
                     binding.index.text = getCompatString(R.string.room_super_mic_name)
                     binding.index.text = getCompatString(R.string.room_super_mic_name)
-                    binding.index.setBackgroundResource(APP_R.drawable.common_blue_radius_6_bg)
+                    binding.index.setBackgroundResource(
+                        if (selectItem.isSelected) {
+                            APP_R.drawable.gift_item_member_other_index_selected_bg
+                        } else {
+                            APP_R.drawable.gift_item_member_other_index_bg
+                        }
+                    )
                 }
                 }
 
 
                 selectItem.micIndex == MicIndex.MIC_OFF.index -> {
                 selectItem.micIndex == MicIndex.MIC_OFF.index -> {
-                    binding.index.text = ""
-                    binding.index.setBackgroundResource(APP_R.color.transparent)
+                    binding.ownerIndex.gone()
+                    binding.index.show()
+                    binding.index.text = null
+                    binding.index.setBackgroundResource(0)
                 }
                 }
 
 
                 else -> {
                 else -> {
-                    binding.index.text = if (selectItem.micIndex!! > MicIndex.SUPER_MIC.index) {
-                        (selectItem.micIndex!! - 1).toString()
-                    } else {
-                        selectItem.micIndex.toString()
-                    }
-                    binding.index.setBackgroundResource(APP_R.drawable.common_gray_radius_6_bg)
+                    binding.ownerIndex.gone()
+                    binding.index.show()
+                    val micIndex = MicIndex.getMicIndex(selectItem.micIndex)
+                    binding.index.text = micIndex.index.toString()
+                    binding.index.setBackgroundResource(
+                        if (selectItem.isSelected) {
+                            APP_R.drawable.gift_item_member_other_index_selected_bg
+                        } else {
+                            APP_R.drawable.gift_item_member_other_index_bg
+                        }
+                    )
                 }
                 }
             }
             }
         }
         }

+ 8 - 22
module/room/src/main/java/com/adealink/weparty/room/minimize/dialog/RoomCloseTipDialog.kt

@@ -6,25 +6,20 @@ import android.os.Bundle
 import android.view.Gravity
 import android.view.Gravity
 import android.view.WindowManager
 import android.view.WindowManager
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.aab.util.getCompatString
-import com.adealink.frame.log.Log
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.mvvm.view.viewBinding
-import com.adealink.frame.room.data.TAG_ROOM_GLOBAL_BROADCAST
-import com.adealink.frame.util.DisplayUtil
 import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
 import com.adealink.weparty.commonui.dialogfragment.BaseDialogFragment
 import com.adealink.weparty.commonui.ext.gone
 import com.adealink.weparty.commonui.ext.gone
-import com.adealink.weparty.commonui.ext.setVisible
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.ext.show
 import com.adealink.weparty.commonui.widget.CommonDialog
 import com.adealink.weparty.commonui.widget.CommonDialog
 import com.adealink.weparty.commonui.widget.data.CommonThemeColor
 import com.adealink.weparty.commonui.widget.data.CommonThemeColor
 import com.adealink.weparty.module.profile.ProfileModule
 import com.adealink.weparty.module.profile.ProfileModule
+import com.adealink.weparty.module.room.sdk.data.RoomType
 import com.adealink.weparty.room.R
 import com.adealink.weparty.room.R
 import com.adealink.weparty.room.databinding.DialogRoomCloseTipBinding
 import com.adealink.weparty.room.databinding.DialogRoomCloseTipBinding
-import com.adealink.weparty.room.invite.manager.invitedBellManager
 import com.adealink.weparty.room.micseat.pk.PKSeatsTemplate
 import com.adealink.weparty.room.micseat.pk.PKSeatsTemplate
 import com.adealink.weparty.room.minimize.listener.ICloseRoomActionListener
 import com.adealink.weparty.room.minimize.listener.ICloseRoomActionListener
-import com.adealink.weparty.module.room.sdk.data.RoomType
 import com.adealink.weparty.room.sdk.service.roomService
 import com.adealink.weparty.room.sdk.service.roomService
-import com.adealink.frame.util.onClick
+import com.qmuiteam.qmui.widget.util.QMUIStatusBarHelper
 import com.adealink.weparty.R as APP_R
 import com.adealink.weparty.R as APP_R
 
 
 class RoomCloseTipDialog : BaseDialogFragment(R.layout.dialog_room_close_tip) {
 class RoomCloseTipDialog : BaseDialogFragment(R.layout.dialog_room_close_tip) {
@@ -32,8 +27,6 @@ class RoomCloseTipDialog : BaseDialogFragment(R.layout.dialog_room_close_tip) {
     private val binding by viewBinding(DialogRoomCloseTipBinding::bind)
     private val binding by viewBinding(DialogRoomCloseTipBinding::bind)
     var closeRoomActionListener: ICloseRoomActionListener? = null
     var closeRoomActionListener: ICloseRoomActionListener? = null
 
 
-    private val canShowNextInvitedBellLayout = invitedBellManager.canShowNextInvitedBellLayout()
-
     override fun onCreate(savedInstanceState: Bundle?) {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         super.onCreate(savedInstanceState)
         setStyle(STYLE_NO_TITLE, APP_R.style.FullScreenDialogTheme)
         setStyle(STYLE_NO_TITLE, APP_R.style.FullScreenDialogTheme)
@@ -41,15 +34,18 @@ class RoomCloseTipDialog : BaseDialogFragment(R.layout.dialog_room_close_tip) {
 
 
     override fun initViews() {
     override fun initViews() {
         super.initViews()
         super.initViews()
+        binding.root.setPadding(
+            0, QMUIStatusBarHelper.getStatusbarHeight(activity), 0, 0
+        )
         when (roomService.attrController.getRoomType()) {
         when (roomService.attrController.getRoomType()) {
             RoomType.CLUB -> {
             RoomType.CLUB -> {
                 //会所不支持最小化
                 //会所不支持最小化
-                binding.clLeft.gone()
+                binding.btnMinimize.gone()
             }
             }
 
 
             RoomType.CHAT, RoomType.MIC_GRAB -> {
             RoomType.CHAT, RoomType.MIC_GRAB -> {
                 //聊天房
                 //聊天房
-                binding.clLeft.show()
+                binding.btnMinimize.show()
             }
             }
 
 
         }
         }
@@ -76,16 +72,6 @@ class RoomCloseTipDialog : BaseDialogFragment(R.layout.dialog_room_close_tip) {
             closeRoomActionListener = null
             closeRoomActionListener = null
             dismiss()
             dismiss()
         }
         }
-        initInvitedBellNextTip()
-    }
-
-    private fun initInvitedBellNextTip() {
-        Log.d(TAG_ROOM_GLOBAL_BROADCAST, "canShowNextInvitedBellLayout: $canShowNextInvitedBellLayout")
-        binding.invitedBellNextTipRootLayout.setVisible(canShowNextInvitedBellLayout)
-        binding.invitedBellNextTipRootLayout.onClick {
-            invitedBellManager.clickInvitedBellHeadlineGo { dismiss() }
-        }
-        invitedBellManager.cacheNotify?.let { binding.invitedBellNextTipLayout.updateUI(it) }
     }
     }
 
 
     override fun onStart() {
     override fun onStart() {
@@ -98,7 +84,7 @@ class RoomCloseTipDialog : BaseDialogFragment(R.layout.dialog_room_close_tip) {
         val window = dialog.window ?: return
         val window = dialog.window ?: return
         window.setLayout(
         window.setLayout(
             WindowManager.LayoutParams.MATCH_PARENT,
             WindowManager.LayoutParams.MATCH_PARENT,
-            DisplayUtil.dp2px(if (canShowNextInvitedBellLayout) 320f else 160f) + DisplayUtil.getStatusBarHeight(window)
+            WindowManager.LayoutParams.WRAP_CONTENT
         )
         )
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
         val attr = window.attributes
         val attr = window.attributes

+ 98 - 103
module/room/src/main/java/com/adealink/weparty/room/operate/RoomBottomOperateFragment.kt

@@ -66,9 +66,6 @@ import com.adealink.weparty.room.stat.RoomBaseStatEvent
 import com.adealink.weparty.room.stat.RoomBaseStatEvent.Companion.reportBtnClick
 import com.adealink.weparty.room.stat.RoomBaseStatEvent.Companion.reportBtnClick
 import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
 import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
 
 
-/**
- * Created by sunxiaodong on 2021/4/26.
- */
 open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_bottom_operate),
 open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_bottom_operate),
     OperateBox.OnItemClickListener, IRoomOperateItemListener {
     OperateBox.OnItemClickListener, IRoomOperateItemListener {
 
 
@@ -102,38 +99,38 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
     private var micListMessageDot: MicListMessageDot? = null
     private var micListMessageDot: MicListMessageDot? = null
 
 
     companion object {
     companion object {
-        const val OPERATE_BTN_SPEAKER = 1
-        const val OPERATE_BTN_MIC = 2
-        const val OPERATE_BTN_EMOJI = 3
+        //const val OPERATE_BTN_SPEAKER = 1
+        //const val OPERATE_BTN_MIC = 2
+        //const val OPERATE_BTN_EMOJI = 3
         const val OPERATE_BTN_GIFT = 4
         const val OPERATE_BTN_GIFT = 4
         const val OPERATE_BTN_MESSAGE = 5
         const val OPERATE_BTN_MESSAGE = 5
         const val OPERATE_BTN_PLAY_CENTER = 6
         const val OPERATE_BTN_PLAY_CENTER = 6
         const val OPERATE_BTN_APPLY_ON_MIC = 7
         const val OPERATE_BTN_APPLY_ON_MIC = 7
-        const val OPERATE_BTN_ROOM_GAME = 8
-    }
-
-    private val speakerOperateItem by fastLazy {
-        OperateBox.Item(
-            OPERATE_BTN_SPEAKER,
-            R.drawable.room_operate_speaker_opened_white_36_ic
-        )
-    }
-    private val micOperateItem by fastLazy {
-        OperateBox.Item(
-            OPERATE_BTN_MIC,
-            R.drawable.room_operate_mic_closed_white_36_ic
-        )
-    }
-    private val emojiOperateItem by fastLazy {
-        OperateBox.Item(
-            OPERATE_BTN_EMOJI,
-            R.drawable.room_operate_emoji_white_36_ic
-        )
-    }
+        //const val OPERATE_BTN_ROOM_GAME = 8
+    }
+
+//    private val speakerOperateItem by fastLazy {
+//        OperateBox.Item(
+//            OPERATE_BTN_SPEAKER,
+//            R.drawable.room_operate_speaker_opened_white_36_ic
+//        )
+//    }
+//    private val micOperateItem by fastLazy {
+//        OperateBox.Item(
+//            OPERATE_BTN_MIC,
+//            R.drawable.room_operate_mic_closed_white_36_ic
+//        )
+//    }
+//    private val emojiOperateItem by fastLazy {
+//        OperateBox.Item(
+//            OPERATE_BTN_EMOJI,
+//            R.drawable.room_operate_emoji_white_36_ic
+//        )
+//    }
     private val giftOperateItem by fastLazy {
     private val giftOperateItem by fastLazy {
         OperateBox.Item(
         OperateBox.Item(
             OPERATE_BTN_GIFT,
             OPERATE_BTN_GIFT,
-            R.drawable.room_operate_gift_green_36_ic
+            R.drawable.room_operate_gift_ic
         )
         )
     }
     }
 
 
@@ -159,23 +156,23 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
             tag = R.string.tag_room_play_center
             tag = R.string.tag_room_play_center
         )
         )
     }
     }
-    private val roomGameOperateItem by fastLazy {
-        OperateBox.Item(
-            OPERATE_BTN_ROOM_GAME,
-            R.drawable.room_operation_game_ic,
-            tag = R.string.tag_room_game
-        )
-    }
+//    private val roomGameOperateItem by fastLazy {
+//        OperateBox.Item(
+//            OPERATE_BTN_ROOM_GAME,
+//            R.drawable.room_operation_game_ic,
+//            tag = R.string.tag_room_game
+//        )
+//    }
 
 
     private val deviceViewModel by activityViewModels<RoomDeviceViewModel> { RoomViewModelFactory() }
     private val deviceViewModel by activityViewModels<RoomDeviceViewModel> { RoomViewModelFactory() }
     private val seatViewModel by activityViewModels<RoomSeatViewModel> { RoomViewModelFactory() }
     private val seatViewModel by activityViewModels<RoomSeatViewModel> { RoomViewModelFactory() }
 
 
     override fun initViews() {
     override fun initViews() {
-        binding.ivInputBox.setOnClickListener {
+        binding.clInput.setOnClickListener {
             inputBoxClick()
             inputBoxClick()
         }
         }
-        binding.tvInputBox.setOnClickListener {
-            inputBoxClick()
+        binding.ivEmoji.setOnClickListener {
+            onEmojiIconClick()
         }
         }
         updateOperateBoxBy(roomService.attrController.getRoomType())
         updateOperateBoxBy(roomService.attrController.getRoomType())
         binding.operateBox.itemClickListener = this
         binding.operateBox.itemClickListener = this
@@ -217,26 +214,26 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
                 }
                 }
             }
             }
         )
         )
-        binding.operateBox.operateBoxSizeChangedLD.observe(viewLifecycleOwner,
-            object : Observer<Int> {
-                override fun onChanged(size: Int) {
-                    if (size > 5) {
-                        binding.ivInputBox.show()
-                        binding.tvInputBox.gone()
-                    } else {
-                        binding.ivInputBox.gone()
-                        binding.tvInputBox.show()
-                        chatMessageViewModel.historyInputLD.observe(viewLifecycleOwner) {
-                            if (it.isNullOrEmpty()) {
-                                binding.tvInputBox.text = getCompatString(R.string.room_chat_say_hi)
-                            } else {
-                                binding.tvInputBox.text = it
-                            }
-                        }
-                    }
-                }
-            }
-        )
+//        binding.operateBox.operateBoxSizeChangedLD.observe(viewLifecycleOwner,
+//            object : Observer<Int> {
+//                override fun onChanged(size: Int) {
+//                    if (size > 5) {
+//                        binding.ivInputBox.show()
+//                        binding.tvInputBox.gone()
+//                    } else {
+//                        binding.ivInputBox.gone()
+//                        binding.tvInputBox.show()
+//                        chatMessageViewModel.historyInputLD.observe(viewLifecycleOwner) {
+//                            if (it.isNullOrEmpty()) {
+//                                binding.tvInputBox.text = getCompatString(R.string.room_chat_say_hi)
+//                            } else {
+//                                binding.tvInputBox.text = it
+//                            }
+//                        }
+//                    }
+//                }
+//            }
+//        )
         micListMessageDot = MicListMessageDot()
         micListMessageDot = MicListMessageDot()
         micListMessageDot?.let {
         micListMessageDot?.let {
             normalMessageDot.addChildren(it)
             normalMessageDot.addChildren(it)
@@ -348,71 +345,69 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
             RoomType.CHAT -> {
             RoomType.CHAT -> {
                 binding.operateBox
                 binding.operateBox
                     .removeAllItems()
                     .removeAllItems()
-                    .addItem(speakerOperateItem)
+//                    .addItem(speakerOperateItem)
                     .addItem(micAndMsgOperateItem)
                     .addItem(micAndMsgOperateItem)
                     .addItem(playCenterOperateItem)
                     .addItem(playCenterOperateItem)
-                    .addItem(roomGameOperateItem)
+//                    .addItem(roomGameOperateItem)
                     .addItem(giftOperateItem)
                     .addItem(giftOperateItem)
             }
             }
             RoomType.CLUB -> {
             RoomType.CLUB -> {
                 binding.operateBox
                 binding.operateBox
                     .removeAllItems()
                     .removeAllItems()
-                    .addItem(speakerOperateItem)
+//                    .addItem(speakerOperateItem)
                     .addItem(micAndMsgOperateItem)
                     .addItem(micAndMsgOperateItem)
                     .addItem(giftOperateItem)
                     .addItem(giftOperateItem)
             }
             }
             RoomType.MIC_GRAB -> {
             RoomType.MIC_GRAB -> {
                 binding.operateBox
                 binding.operateBox
                     .removeAllItems()
                     .removeAllItems()
-                    .addItem(speakerOperateItem)
+//                    .addItem(speakerOperateItem)
                     .addItem(micAndMsgOperateItem)
                     .addItem(micAndMsgOperateItem)
                     .addItem(giftOperateItem)
                     .addItem(giftOperateItem)
             }
             }
-
-            else -> {}
         }
         }
     }
     }
 
 
     private fun updateSpeakerIcon(audioPlayerMute: Boolean) {
     private fun updateSpeakerIcon(audioPlayerMute: Boolean) {
-        binding.operateBox.updateItem(speakerOperateItem.apply {
-            iconResId =
-                if (audioPlayerMute) R.drawable.room_operate_speaker_closed_white_36_ic else R.drawable.room_operate_speaker_opened_white_36_ic
-        })
+//        binding.operateBox.updateItem(speakerOperateItem.apply {
+//            iconResId =
+//                if (audioPlayerMute) R.drawable.room_operate_speaker_closed_white_36_ic else R.drawable.room_operate_speaker_opened_white_36_ic
+//        })
     }
     }
 
 
     private fun updateMicIcon(mute: Boolean) {
     private fun updateMicIcon(mute: Boolean) {
-        binding.operateBox.updateItem(micOperateItem.apply {
-            iconResId =
-                if (mute) R.drawable.room_operate_mic_closed_white_36_ic else R.drawable.room_operate_mic_opened_white_36_ic
-        })
+//        binding.operateBox.updateItem(micOperateItem.apply {
+//            iconResId =
+//                if (mute) R.drawable.room_operate_mic_closed_white_36_ic else R.drawable.room_operate_mic_opened_white_36_ic
+//        })
     }
     }
 
 
     open fun showMicIcon(show: Boolean) {
     open fun showMicIcon(show: Boolean) {
-        if (show) {
-            binding.operateBox.addAfter(micOperateItem, speakerOperateItem)
-        } else {
-            binding.operateBox.removeItem(micOperateItem)
-        }
+//        if (show) {
+//            binding.operateBox.addAfter(micOperateItem, speakerOperateItem)
+//        } else {
+//            binding.operateBox.removeItem(micOperateItem)
+//        }
     }
     }
 
 
     open fun showEmotionIcon(show: Boolean) {
     open fun showEmotionIcon(show: Boolean) {
-        if (show) {
-            binding.operateBox.findItemById(OPERATE_BTN_ROOM_GAME)?.let {
-                binding.operateBox.addBefore(emojiOperateItem, micAndMsgOperateItem)
-            } ?: let {
-                binding.operateBox.addBefore(emojiOperateItem, giftOperateItem)
-            }
-        } else {
-            binding.operateBox.removeItem(emojiOperateItem)
-        }
+//        if (show) {
+//            binding.operateBox.findItemById(OPERATE_BTN_ROOM_GAME)?.let {
+//                binding.operateBox.addBefore(emojiOperateItem, micAndMsgOperateItem)
+//            } ?: let {
+//                binding.operateBox.addBefore(emojiOperateItem, giftOperateItem)
+//            }
+//        } else {
+//            binding.operateBox.removeItem(emojiOperateItem)
+//        }
     }
     }
 
 
     private fun showMessageIcon(show: Boolean) {
     private fun showMessageIcon(show: Boolean) {
-        if (show) {
-            binding.operateBox.addBefore(micAndMsgOperateItem, speakerOperateItem)
-        } else {
-            binding.operateBox.removeItem(micAndMsgOperateItem)
-        }
+//        if (show) {
+//            binding.operateBox.addBefore(micAndMsgOperateItem, speakerOperateItem)
+//        } else {
+//            binding.operateBox.removeItem(micAndMsgOperateItem)
+//        }
     }
     }
 
 
     private fun showPlayCenterIcon(show: Boolean) {
     private fun showPlayCenterIcon(show: Boolean) {
@@ -453,15 +448,15 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
 
 
     override fun onItemClick(item: OperateBox.Item) {
     override fun onItemClick(item: OperateBox.Item) {
         when (item) {
         when (item) {
-            speakerOperateItem -> {
-                onSpeakerIconClick()
-            }
-            micOperateItem -> {
-                onMicIconClick()
-            }
-            emojiOperateItem -> {
-                onEmojiIconClick()
-            }
+//            speakerOperateItem -> {
+//                onSpeakerIconClick()
+//            }
+//            micOperateItem -> {
+//                onMicIconClick()
+//            }
+//            emojiOperateItem -> {
+//                onEmojiIconClick()
+//            }
             giftOperateItem -> {
             giftOperateItem -> {
                 onGiftIconClick()
                 onGiftIconClick()
             }
             }
@@ -471,9 +466,9 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
             playCenterOperateItem -> {
             playCenterOperateItem -> {
                 onPlayCenterClick()
                 onPlayCenterClick()
             }
             }
-            roomGameOperateItem -> {
-                onRoomGameClick()
-            }
+//            roomGameOperateItem -> {
+//                onRoomGameClick()
+//            }
         }
         }
     }
     }
 
 

BIN
module/room/src/main/res/drawable-xhdpi/room_exit_big_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_exit_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_minimize_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_operate_gift_gray_44_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_operate_gift_green_36_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_operate_gift_green_44_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_operate_gift_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_operate_input_emoji_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_operate_msg_and_mic_ic.png


BIN
module/room/src/main/res/drawable-xhdpi/room_operation_play_center_ic.png


+ 8 - 0
module/room/src/main/res/drawable/room_bottom_input_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners
+        android:topLeftRadius="36dp"
+        android:topRightRadius="36dp" />
+    <solid android:color="@color/color_0DFFFFFF" />
+</shape>

+ 8 - 0
module/room/src/main/res/drawable/room_bottom_input_line_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners
+        android:topLeftRadius="2dp"
+        android:topRightRadius="2dp" />
+    <solid android:color="@color/color_99FFFFFF" />
+</shape>

+ 2 - 3
module/room/src/main/res/drawable/room_close_tip_bg.xml

@@ -2,9 +2,8 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">
     android:shape="rectangle">
     <gradient
     <gradient
-        android:centerColor="#d9000000"
-        android:endColor="#99000000"
-        android:startColor="#ff000000"
         android:angle="270"
         android:angle="270"
+        android:endColor="@color/color_00000000"
+        android:startColor="@color/color_CC000000"
         android:type="linear" />
         android:type="linear" />
 </shape>
 </shape>

+ 19 - 76
module/room/src/main/res/layout/dialog_room_close_tip.xml

@@ -3,85 +3,28 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
-    android:layout_height="160dp"
+    android:layout_height="400dp"
     android:background="@drawable/room_close_tip_bg">
     android:background="@drawable/room_close_tip_bg">
 
 
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_left"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_marginStart="25dp"
-        app:layout_constraintBottom_toBottomOf="@+id/cl_right"
-        app:layout_constraintEnd_toStartOf="@id/cl_right"
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/btn_minimize"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_marginTop="24dp"
+        android:src="@drawable/room_minimize_ic"
+        app:layout_constraintEnd_toStartOf="@id/btn_close"
+        app:layout_constraintHorizontal_chainStyle="spread"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <ImageView
-            android:id="@+id/btn_minimize"
-            android:layout_width="50dp"
-            android:layout_height="50dp"
-            android:src="@drawable/room_minimize_ic"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/cl_right"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_marginEnd="25dp"
-        app:layout_constraintBottom_toTopOf="@+id/invited_bell_next_tip_root_layout"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <androidx.appcompat.widget.AppCompatImageView
+        android:id="@+id/btn_close"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_marginTop="24dp"
+        android:src="@drawable/room_exit_ic"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toEndOf="@id/cl_left"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <ImageView
-            android:id="@+id/btn_close"
-            android:layout_width="50dp"
-            android:layout_height="50dp"
-            android:src="@drawable/room_exit_big_ic"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:id="@+id/invited_bell_next_tip_root_layout"
-        android:layout_width="match_parent"
-        android:layout_height="160dp"
-        android:visibility="gone"
-        tools:visibility="visible"
-        android:background="@drawable/room_next_invited_bell_exit_bg_ic"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/cl_left">
-
-        <androidx.appcompat.widget.AppCompatTextView
-            android:id="@+id/tip_title_tv"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="30dp"
-            android:layout_marginTop="8dp"
-            android:gravity="center"
-            android:text="@string/room_next_invite_bell_tip_title"
-            android:textColor="@color/white"
-            android:textDirection="locale"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <com.adealink.weparty.room.invite.view.InvitedBellNextHeadlineLayout
-            android:id="@+id/invited_bell_next_tip_layout"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/tip_title_tv" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
+        app:layout_constraintStart_toEndOf="@id/btn_minimize"
+        app:layout_constraintTop_toTopOf="parent" />
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 56 - 33
module/room/src/main/res/layout/fragment_room_bottom_operate.xml

@@ -1,46 +1,69 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    tools:background="@color/black"
+    tools:layout_height="44dp">
 
 
-    <com.adealink.weparty.commonui.widget.OperateBox
-        android:id="@+id/operate_box"
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/cl_input"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="5dp"
-        app:icon_size="34dp"
-        app:item_height="54dp"
-        app:item_width="44dp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <androidx.appcompat.widget.AppCompatImageView
-        android:id="@+id/iv_input_box"
-        android:layout_width="34dp"
-        android:layout_height="34dp"
-        android:visibility="gone"
-        android:src="@drawable/room_operate_input_message_ic"
+        android:background="@drawable/room_bottom_input_bg"
+        android:paddingHorizontal="16dp"
+        android:paddingVertical="8dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"/>
+        app:layout_constraintTop_toTopOf="parent">
+
+        <androidx.appcompat.widget.AppCompatTextView
+            android:id="@+id/tv_input_box"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:ellipsize="end"
+            android:includeFontPadding="false"
+            android:maxWidth="45dp"
+            android:singleLine="true"
+            android:text="@string/room_chat_say_hi"
+            android:textColor="@color/color_99FFFFFF"
+            android:textSize="12sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <View
+            android:layout_width="1dp"
+            android:layout_height="12dp"
+            android:layout_marginStart="12dp"
+            android:background="@drawable/room_bottom_input_line_bg"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toEndOf="@id/tv_input_box"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <androidx.appcompat.widget.AppCompatImageView
+            android:id="@+id/iv_emoji"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:layout_marginStart="24dp"
+            android:src="@drawable/room_operate_input_emoji_ic"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toEndOf="@id/tv_input_box"
+            app:layout_constraintTop_toTopOf="parent" />
 
 
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/tv_input_box"
-        android:layout_width="0dp"
-        android:layout_height="34dp"
-        android:background="@drawable/room_chat_input_box_bg"
-        android:ellipsize="end"
-        android:gravity="center_vertical"
-        android:paddingStart="16dp"
-        android:paddingEnd="16dp"
-        android:singleLine="true"
-        android:text="@string/room_chat_say_hi"
-        android:textColor="@color/white"
-        android:textSize="12sp"
-        android:visibility="gone"
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+    <com.adealink.weparty.commonui.widget.OperateBox
+        android:id="@+id/operate_box"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="8dp"
+        app:icon_size="32dp"
+        app:item_height="40dp"
+        app:item_width="40dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toStartOf="@+id/operate_box"
-        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
         app:layout_constraintTop_toTopOf="parent" />
+
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 1
module/room/src/main/res/layout/fragment_room_member_info.xml

@@ -348,7 +348,7 @@
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintTop_toTopOf="parent"
                 app:layout_constraintTop_toTopOf="parent"
                 app:layout_goneMarginStart="20dp"
                 app:layout_goneMarginStart="20dp"
-                app:srcCompat="@drawable/room_operate_gift_green_44_ic" />
+                app:srcCompat="@drawable/room_operate_gift_ic" />
 
 
             <include
             <include
                 android:id="@+id/operate_layout"
                 android:id="@+id/operate_layout"

+ 10 - 12
module/room/src/main/res/layout/fragment_room_play_center_panel.xml

@@ -5,14 +5,22 @@
     android:id="@+id/cl_container"
     android:id="@+id/cl_container"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    android:background="@drawable/room_common_bottom_panel_bg">
+    android:background="@drawable/room_play_center_panel_bg">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/rv_game_center"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingHorizontal="8dp"
+        app:layout_constrainedHeight="true"
+        app:layout_constraintBottom_toTopOf="@+id/cl_global_broad_cast"
+        app:layout_constraintHeight_max="550dp" />
 
 
     <androidx.appcompat.widget.LinearLayoutCompat
     <androidx.appcompat.widget.LinearLayoutCompat
         android:id="@+id/cl_global_broad_cast"
         android:id="@+id/cl_global_broad_cast"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_height="0dp"
         android:layout_marginHorizontal="7dp"
         android:layout_marginHorizontal="7dp"
-        android:background="@color/white"
         android:orientation="vertical"
         android:orientation="vertical"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintHeight_max="75dp"
         app:layout_constraintHeight_max="75dp"
@@ -22,7 +30,6 @@
             android:id="@+id/v_guide_line"
             android:id="@+id/v_guide_line"
             android:layout_width="match_parent"
             android:layout_width="match_parent"
             android:layout_height="1px"
             android:layout_height="1px"
-            android:background="@color/color_FFE5E5E5"
             app:layout_constraintBottom_toTopOf="@id/iv_entrance"
             app:layout_constraintBottom_toTopOf="@id/iv_entrance"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent" />
             app:layout_constraintStart_toStartOf="parent" />
@@ -30,13 +37,4 @@
         <include layout="@layout/item_play_center_global_broadcast" />
         <include layout="@layout/item_play_center_global_broadcast" />
     </androidx.appcompat.widget.LinearLayoutCompat>
     </androidx.appcompat.widget.LinearLayoutCompat>
 
 
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/rv_game_center"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:layout_constrainedHeight="true"
-        android:paddingHorizontal="8dp"
-        app:layout_constraintBottom_toTopOf="@+id/cl_global_broad_cast"
-        app:layout_constraintHeight_max="550dp" />
-
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 19 - 24
module/room/src/main/res/layout/layout_room_mic_on_members_selector.xml

@@ -1,44 +1,39 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
-    android:background="@drawable/common_transparent_top_radius_20_bg"
-    android:paddingHorizontal="16dp"
-    android:paddingVertical="8dp">
+    android:paddingHorizontal="12dp"
+    android:paddingVertical="8dp"
+    tools:background="@color/black">
 
 
-    <androidx.appcompat.widget.AppCompatTextView
-        android:id="@+id/to_text"
-        android:layout_width="wrap_content"
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/mic_on_members"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:text="@string/common_to"
-        android:textColor="@color/color_80FFFFFF"
-        android:textSize="12sp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toStartOf="@+id/select_all_btn"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
         app:layout_constraintTop_toTopOf="parent" />
 
 
-    <com.adealink.weparty.commonui.widget.CommonButton
+    <androidx.appcompat.widget.AppCompatTextView
         android:id="@+id/select_all_btn"
         android:id="@+id/select_all_btn"
-        android:layout_width="50dp"
-        android:layout_height="24dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/common_1affffff_radius_24_bg"
         android:gravity="center"
         android:gravity="center"
+        android:includeFontPadding="false"
+        android:minWidth="36dp"
+        android:paddingHorizontal="7.5dp"
+        android:paddingVertical="5dp"
         android:text="@string/common_all"
         android:text="@string/common_all"
-        android:textSize="12sp"
-        app:button_radius="12dp"
-        app:is_strong="true"
+        android:textColor="@color/white"
+        android:textSize="14sp"
+        android:textStyle="bold"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
         app:layout_constraintTop_toTopOf="parent" />
 
 
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/mic_on_members"
-        android:layout_width="0dp"
-        android:layout_height="34dp"
-        android:layout_marginStart="8dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toStartOf="@+id/select_all_btn"
-        app:layout_constraintStart_toEndOf="@+id/to_text"
-        app:layout_constraintTop_toTopOf="parent" />
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 2
module/room/src/main/res/layout/layout_room_online_member.xml

@@ -2,13 +2,13 @@
 <merge xmlns:android="http://schemas.android.com/apk/res/android"
 <merge xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="wrap_content"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
     tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
     tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
 
 
     <com.adealink.weparty.room.member.widget.RoomOnlineMemberView
     <com.adealink.weparty.room.member.widget.RoomOnlineMemberView
         android:id="@+id/iv_online_member"
         android:id="@+id/iv_online_member"
-        android:layout_width="wrap_content"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
         app:layout_constrainedWidth="true"
         app:layout_constrainedWidth="true"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"

+ 6 - 4
module/room/src/main/res/layout/layout_room_online_member_view.xml

@@ -2,7 +2,7 @@
 <merge xmlns:android="http://schemas.android.com/apk/res/android"
 <merge xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="wrap_content"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_height="wrap_content"
     android:background="@color/black"
     android:background="@color/black"
     tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
     tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
@@ -21,9 +21,9 @@
 
 
     <androidx.recyclerview.widget.RecyclerView
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/rv_members"
         android:id="@+id/rv_members"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginHorizontal="4dp"
+        android:layout_marginStart="4dp"
         app:layout_constrainedHeight="true"
         app:layout_constrainedHeight="true"
         app:layout_constrainedWidth="true"
         app:layout_constrainedWidth="true"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
@@ -35,6 +35,7 @@
         android:id="@+id/cl_member_count"
         android:id="@+id/cl_member_count"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
         android:layout_height="28dp"
         android:layout_height="28dp"
+        android:layout_marginStart="4dp"
         android:background="@drawable/room_online_member_count_bg"
         android:background="@drawable/room_online_member_count_bg"
         android:paddingHorizontal="6dp"
         android:paddingHorizontal="6dp"
         app:layout_constrainedWidth="true"
         app:layout_constrainedWidth="true"
@@ -42,7 +43,8 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toEndOf="@id/rv_members"
         app:layout_constraintStart_toEndOf="@id/rv_members"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintWidth_min="28dp">
+        app:layout_constraintWidth_min="28dp"
+        app:layout_goneMarginStart="0dp">
 
 
         <androidx.appcompat.widget.AppCompatImageView
         <androidx.appcompat.widget.AppCompatImageView
             android:id="@+id/iv_member_count"
             android:id="@+id/iv_member_count"