|
@@ -2,6 +2,7 @@ package com.swago.room.user
|
|
|
|
|
|
import android.view.View
|
|
|
import android.widget.Toast
|
|
|
+import androidx.constraintlayout.widget.ConstraintLayout
|
|
|
import androidx.fragment.app.activityViewModels
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
@@ -11,8 +12,12 @@ import com.swago.baseswago.agora.AgoraManager
|
|
|
import com.swago.baseswago.baseroom.IRoomInfo
|
|
|
import com.swago.baseswago.baseroom.SwagoRoomManager
|
|
|
import com.swago.baseswago.dialog.BenefitBagDialog
|
|
|
+import com.swago.baseswago.dialog.ReportDialog
|
|
|
+import com.swago.baseswago.model.im.UserJoinRoomBean
|
|
|
+import com.swago.baseswago.model.live.RoomUserModel
|
|
|
import com.swago.baseswago.model.live.gift.GiftModel
|
|
|
import com.swago.baseswago.util.AppContext
|
|
|
+import com.swago.baseswago.util.NoDoubleClickListener
|
|
|
import com.swago.baseswago.util.UserInfo
|
|
|
import com.swago.room.R
|
|
|
import com.swago.room.adapter.GameAdapter
|
|
@@ -26,6 +31,7 @@ import com.swago.room.inter.IHeader
|
|
|
import com.swago.room.vm.RoomOtherVm
|
|
|
import com.swago.room.widget.UserFooterView
|
|
|
import com.swago.room.widget.UserHeaderView
|
|
|
+import java.util.concurrent.CopyOnWriteArrayList
|
|
|
|
|
|
/**
|
|
|
*@date 2021/10/11 14:24
|
|
@@ -34,30 +40,57 @@ import com.swago.room.widget.UserHeaderView
|
|
|
class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
|
|
|
|
|
|
private val userVm by activityViewModels<UserVm>()
|
|
|
- private val giftVm by activityViewModels<GiftVm>()
|
|
|
private val roomOtherVm by activityViewModels<RoomOtherVm>()
|
|
|
|
|
|
- //热门礼物列表
|
|
|
- private val hotList = ArrayList<GiftModel>()
|
|
|
-
|
|
|
- //奢华礼物列表
|
|
|
- private val luxuryList = ArrayList<GiftModel>()
|
|
|
-
|
|
|
- //幸运礼物列表
|
|
|
- private val luckyData = ArrayList<GiftModel>()
|
|
|
-
|
|
|
private var isForbid = false //是否被禁言
|
|
|
|
|
|
+ private var roomUserList = CopyOnWriteArrayList<RoomUserModel.ListBean>()
|
|
|
+
|
|
|
override fun initOther() {
|
|
|
super.initOther()
|
|
|
- giftVm.getGiftList()
|
|
|
roomOtherVm.getGameList()
|
|
|
+
|
|
|
+ UserInfo.getUserInfo()?.let {
|
|
|
+ if (it.is_benefit == 0) {
|
|
|
+ binding.ivBenefit.visibility = ConstraintLayout.VISIBLE
|
|
|
+ } else {
|
|
|
+ binding.ivBenefit.visibility = ConstraintLayout.VISIBLE
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ binding.ivBenefit.setOnClickListener(object:NoDoubleClickListener(){
|
|
|
+ override fun onClick() {
|
|
|
+ val dialog = BenefitBagDialog.newInstance()
|
|
|
+ dialog.benefitIconDismissFun = {
|
|
|
+ UserInfo.getUserInfo()?.let {
|
|
|
+ if (it.is_benefit == 0) {
|
|
|
+ binding.ivBenefit.visibility = ConstraintLayout.VISIBLE
|
|
|
+ } else {
|
|
|
+ binding.ivBenefit.visibility = ConstraintLayout.VISIBLE
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dialog.show(childFragmentManager, "BenefitBagDialog")
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ binding.ivReport.visibility = ConstraintLayout.VISIBLE
|
|
|
+ binding.ivReport.setOnClickListener(object:NoDoubleClickListener(){
|
|
|
+ override fun onClick() {
|
|
|
+ SwagoRoomManager.iRoomInfo?.let {
|
|
|
+ ReportDialog.newInstance(it.getAnchorCode())
|
|
|
+ .show(childFragmentManager, "ReportDialog")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
|
|
|
override fun initLiveData() {
|
|
|
super.initLiveData()
|
|
|
roomVm.roomUserDataLiveData.observe(this) {
|
|
|
+ roomUserList.clear()
|
|
|
+ roomUserList.addAll(it)
|
|
|
iHeader.updateRoomUser(it)
|
|
|
}
|
|
|
|
|
@@ -83,12 +116,6 @@ class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
|
|
|
footerView.setGameIcon(it.status == 1)
|
|
|
}
|
|
|
|
|
|
- footerView.setMirrorFun = {
|
|
|
- SwagoRoomManager.iRoomInfo?.let {
|
|
|
- AgoraManager.setMirror(it.getAnchorId().toInt())
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
footerView.openMessageFun = {
|
|
|
openMessageListDialog()
|
|
|
}
|
|
@@ -114,50 +141,29 @@ class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
|
|
|
openGameDialog()
|
|
|
}
|
|
|
|
|
|
- footerView.openBenefitFun = {
|
|
|
- val dialog = BenefitBagDialog.newInstance()
|
|
|
- dialog.benefitIconDismissFun = {
|
|
|
- footerView.setBenefit()
|
|
|
- }
|
|
|
- dialog.show(childFragmentManager, "BenefitBagDialog")
|
|
|
- }
|
|
|
-
|
|
|
val headerView = iHeader as UserHeaderView
|
|
|
headerView.followFun = {
|
|
|
userVm.followUser(it, 0)
|
|
|
}
|
|
|
|
|
|
headerView.showUserInfo = {
|
|
|
- PersonDataDFragment.newInstance(it,isAnchor = false,inRoom = true).show(childFragmentManager, "PersonDataDFragment")
|
|
|
+ PersonDataDFragment.newInstance(it,isAnchor = false,inRoom = true).apply {
|
|
|
+ this.openGiftDialog = {nickName, userId ->
|
|
|
+ GiftDialog.newInstance(
|
|
|
+ nickName,
|
|
|
+ userId,
|
|
|
+ hotList,
|
|
|
+ luxuryList,
|
|
|
+ luckyData
|
|
|
+ ).show(childFragmentManager, "GiftDialog")
|
|
|
+ }
|
|
|
+ }.show(childFragmentManager, "PersonDataDFragment")
|
|
|
}
|
|
|
|
|
|
userVm.followStateLiveData.observe(this) {
|
|
|
headerView.setFollow()
|
|
|
}
|
|
|
|
|
|
- giftVm.allGiftLiveData.observe(this) {
|
|
|
- it.forEach { giftAllModel ->
|
|
|
- when (giftAllModel.gift_type) {
|
|
|
- 1 -> {
|
|
|
- //热门礼物
|
|
|
- hotList.addAll(giftAllModel.data)
|
|
|
- }
|
|
|
-
|
|
|
- 2 -> {
|
|
|
- //奢华礼物
|
|
|
- luxuryList.addAll(giftAllModel.data)
|
|
|
- }
|
|
|
-
|
|
|
- 3 -> {
|
|
|
- //幸运礼物
|
|
|
- luckyData.addAll(giftAllModel.data)
|
|
|
- GiftConfig.list.clear()
|
|
|
- GiftConfig.list.addAll(giftAllModel.position)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
msgVm.inComeChange = {
|
|
|
headerView.updateIncome(it)
|
|
|
}
|
|
@@ -211,4 +217,14 @@ class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
|
|
|
override val iFooter: IFooter by lazy {
|
|
|
UserFooterView(requireContext())
|
|
|
}
|
|
|
+
|
|
|
+ override fun updateUserJoinRoom(userJoinRoomBean: UserJoinRoomBean) {
|
|
|
+ val data = RoomUserModel.ListBean()
|
|
|
+ data.user_account = userJoinRoomBean.senderCode
|
|
|
+ data.user_head_img_url = userJoinRoomBean.userAvatar
|
|
|
+ data.user_id = userJoinRoomBean.senderId
|
|
|
+ data.user_name = userJoinRoomBean.senderName
|
|
|
+ roomUserList.add(0,data)
|
|
|
+ iHeader.updateRoomUser(roomUserList)
|
|
|
+ }
|
|
|
}
|