1:添加酒吧房的弹框获取数据

This commit is contained in:
2026-01-06 09:37:44 +08:00
parent 44ebb14fb3
commit 5cc393fe06
37 changed files with 666 additions and 91 deletions

View File

@@ -1,20 +1,19 @@
package com.xscm.modulemain.dialog.barRoom
import android.content.Context
import android.content.Intent
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import com.blankj.utilcode.util.ActivityUtils.startActivity
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.activity.user.activity.RechargeActivity
import com.xscm.modulemain.databinding.DialogAboutRoomBinding
import com.xscm.modulemain.databinding.DialogFlirtatiousBinding
import com.xscm.moduleutil.bean.WalletBean
import com.xscm.moduleutil.color.ThemeableDrawableUtils
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.utils.ColorManager
import com.xscm.moduleutil.utils.SpUtil
import com.xscm.moduleutil.widget.dialog.BaseDialog
import io.reactivex.disposables.Disposable
@@ -56,7 +55,15 @@ class FlirtatiousDialog(context: Context) :
onConfirmCallback?.invoke("")
dismiss()
}
mBinding.tvCancel.setOnClickListener {
dismiss()
}
mBinding.vCheckbox.setOnClickListener {
it.isSelected = !it.isSelected
if (it.isSelected) {
SpUtil.setBooleanValue("pub", true)
}
}
}

View File

@@ -1,6 +1,7 @@
package com.xscm.modulemain.dialog.barRoom
import android.content.Context
import android.text.TextUtils
import android.view.Gravity
import android.view.ViewGroup
import androidx.recyclerview.widget.GridLayoutManager
@@ -12,6 +13,7 @@ import com.xscm.modulemain.databinding.DialogGiftGivingBinding
import com.xscm.moduleutil.bean.RoonGiftModel
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.utils.ImageUtils
import com.xscm.moduleutil.widget.dialog.BaseDialog
import io.reactivex.disposables.Disposable
@@ -20,9 +22,21 @@ import io.reactivex.disposables.Disposable
* 时间2026/1/5 10:41
* 用途:酒吧房赠送自定义礼物
*/
class GiftGivingDialog (context: Context, val roomId: String) :
class GiftGivingDialog(
context: Context,
roomId: String,
userId: String,
username: String,
avatar: String
) :
BaseDialog<DialogGiftGivingBinding>(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
// 将参数存储为私有变量,避免在基类构造函数调用时被访问
private var mRoomId: String = roomId
private var mUserId: String = userId
private var mUsername: String = username
private var mAvatar: String = avatar
var adapter: RoomGiftGivingAdapter? = null
var time: MutableList<String> = mutableListOf()
@@ -33,42 +47,62 @@ class GiftGivingDialog (context: Context, val roomId: String) :
override fun initView() {
setupWindow()
val layoutManager = GridLayoutManager(context, 4)
val layoutManager = GridLayoutManager(context, 3)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
mBinding.ivClose.setOnClickListener {
dismiss()
}
}
override fun initData() {
// TODO: 这里调用的事设置插队礼物接口
RetrofitClient.getInstance().getGiftList(1,roomId,object : BaseObserver<MutableList<RoonGiftModel>>() {
override fun onSubscribe(d: Disposable) {
}
// 不在这里初始化数据,改为在 show() 方法中初始化
}
override fun onNext(t: MutableList<RoonGiftModel>) {
if (t.isNotEmpty()) {
adapter = RoomGiftGivingAdapter(t) { selectedValue, position ->
// 处理选中事件
LogUtils.e("选中了: $selectedValue, 位置: $position")
}
// 重写 show() 方法,在显示 Dialog 之前初始化数据
override fun show() {
// 确保参数不为空
if (!TextUtils.isEmpty(mUsername)) {
mBinding.tvName.text = mUsername
}
if (!TextUtils.isEmpty(mAvatar)) {
ImageUtils.loadHead(mAvatar, mBinding.ivAvatar)
}
// 设置GridLayoutManager每行显示4个item
val layoutManager =
GridLayoutManager(context, 4)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
// 调用父类的 show() 方法
super.show()
// TODO: 调用赠送自定义礼物。点击麦位上左边的最小图标
RetrofitClient.getInstance()
.getCustomGiftList(object : BaseObserver<MutableList<RoonGiftModel>>() {
override fun onSubscribe(d: Disposable) {
}
}
})
override fun onNext(t: MutableList<RoonGiftModel>) {
if (t.isNotEmpty()) {
adapter = RoomGiftGivingAdapter(t) { selectedValue, position ->
// 处理选中事件使用roomId和userId
LogUtils.e("选中了: $selectedValue, 位置: $position, roomId: $mRoomId, userId: $mUserId")
}
// 设置GridLayoutManager每行显示4个item
val layoutManager =
GridLayoutManager(context, 3)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
}
}
})
}
private fun setupWindow() {
val window = window ?: return
window.setGravity(Gravity.BOTTOM)
window.setGravity(Gravity.CENTER)
window.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
(ScreenUtils.getAppScreenHeight() * 348f / 812).toInt()
(ScreenUtils.getAppScreenWidth() * 287f / 375).toInt(),
(ScreenUtils.getAppScreenHeight() * 290f / 812).toInt()
)
window.setBackgroundDrawableResource(android.R.color.transparent)

View File

@@ -0,0 +1,85 @@
package com.xscm.modulemain.dialog.barRoom
import android.content.Context
import android.view.Gravity
import android.view.ViewGroup
import androidx.recyclerview.widget.GridLayoutManager
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.adapter.FixedItemAdapter
import com.xscm.modulemain.adapter.RoomGiftGivingAdapter
import com.xscm.modulemain.databinding.DialogGiftGivingBinding
import com.xscm.modulemain.databinding.DialogMakeFriendsBinding
import com.xscm.moduleutil.bean.RoonGiftModel
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.widget.dialog.BaseDialog
import io.reactivex.disposables.Disposable
/**
* 项目名称:羽声语音
* 时间2026/1/5 19:27
* 用途:交友小屋弹窗
*/
class MakeFriendsDialog(context: Context, val roomId: String?) :
BaseDialog<DialogMakeFriendsBinding>(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
var adapter: FixedItemAdapter? = null
override fun getLayoutId(): Int {
return R.layout.dialog_make_friends
}
override fun initView() {
setupWindow()
val layoutManager = GridLayoutManager(context, 2)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
}
override fun initData() {
// TODO: 这里调用的事设置插队礼物接口
// RetrofitClient.getInstance().getGiftList(1,roomId,object : BaseObserver<MutableList<RoonGiftModel>>() {
// override fun onSubscribe(d: Disposable) {
// }
//
// override fun onNext(t: MutableList<RoonGiftModel>) {
// if (t.isNotEmpty()) {
// adapter = RoomGiftGivingAdapter(t) { selectedValue, position ->
// // 处理选中事件
// LogUtils.e("选中了: $selectedValue, 位置: $position")
// }
//
// // 设置GridLayoutManager每行显示4个item
// val layoutManager =
// GridLayoutManager(context, 4)
// mBinding.recycleView.layoutManager = layoutManager
// mBinding.recycleView.adapter = adapter
// }
// }
// })
val layoutManager =
GridLayoutManager(context, 2)
adapter= FixedItemAdapter(15)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
}
private fun setupWindow() {
val window = window ?: return
window.setGravity(Gravity.BOTTOM)
window.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
(ScreenUtils.getAppScreenHeight() * 400f / 812).toInt()
)
window.setBackgroundDrawableResource(android.R.color.transparent)
val params = window.attributes
params.windowAnimations = com.xscm.moduleutil.R.style.BaseDialogStyleH
window.attributes = params
}
}

View File

@@ -6,6 +6,7 @@ import android.view.ViewGroup
import com.blankj.utilcode.util.ScreenUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.databinding.DialogPerformInputBinding
import com.xscm.moduleutil.bean.RoonGiftModel
import com.xscm.moduleutil.color.ThemeableDrawableUtils
import com.xscm.moduleutil.utils.ColorManager
import com.xscm.moduleutil.widget.dialog.BaseDialog
@@ -18,15 +19,18 @@ import com.xscm.moduleutil.widget.dialog.BaseDialog
class PerformInputDialog(context: Context) :
BaseDialog<DialogPerformInputBinding>(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
private var giftModel: RoonGiftModel? = null
// 定义回调接口
private var onConfirmCallback: ((String) -> Unit)? = null
// 设置回调接口的方法
fun setOnConfirmListener(callback: (String) -> Unit): PerformInputDialog {
onConfirmCallback = callback
return this
}
override fun getLayoutId(): Int {
return R.layout.dialog_perform_input
}
@@ -51,12 +55,16 @@ class PerformInputDialog(context: Context) :
mBinding.tvConfirm.setOnClickListener {
val inputText = mBinding.etInput.text.toString().trim()
onConfirmCallback?.invoke(inputText)
dismiss()
}
}
override fun initData() {
// 初始化数据,如果需要的话
giftModel?.let { model ->
if (model.new_gift_name?.isNotEmpty() == true) {
mBinding.etInput.setText(model.new_gift_name)
}
}
}
private fun setupWindow() {
@@ -72,4 +80,24 @@ class PerformInputDialog(context: Context) :
params.windowAnimations = com.xscm.moduleutil.R.style.BaseDialogStyleH
window.attributes = params
}
fun show(item: RoonGiftModel?) {
giftModel = item
super.show()
// 确保在显示后立即刷新数据
refreshData()
}
private fun refreshData() {
giftModel?.let { model ->
if (model.new_gift_name?.isNotEmpty() == true) {
mBinding.etInput.setText(model.new_gift_name)
}
}
}
override fun dismiss() {
super.dismiss()
mBinding.etInput.text?.clear()
}
}

View File

@@ -2,18 +2,24 @@ package com.xscm.modulemain.dialog.barRoom
import android.content.Context
import android.content.Intent
import android.text.TextUtils
import android.view.Gravity
import android.view.ViewGroup
import androidx.recyclerview.widget.GridLayoutManager
import com.blankj.utilcode.util.ActivityUtils.startActivity
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.activity.user.activity.RechargeActivity
import com.xscm.modulemain.adapter.RoomGiftGivingAdapter
import com.xscm.modulemain.databinding.DialogAboutRoomBinding
import com.xscm.moduleutil.bean.RoonGiftModel
import com.xscm.moduleutil.bean.WalletBean
import com.xscm.moduleutil.color.ThemeableDrawableUtils
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.utils.ColorManager
import com.xscm.moduleutil.utils.ImageUtils
import com.xscm.moduleutil.widget.dialog.BaseDialog
import io.reactivex.disposables.Disposable
@@ -22,9 +28,18 @@ import io.reactivex.disposables.Disposable
* 时间2026/1/5 14:18
* 用途:酒吧房约她弹框
*/
class RoomAboutDialog (context: Context) :
class RoomAboutDialog(
context: Context,
roomId: String,
userId: String,
username: String,
avatar: String
) :
BaseDialog<DialogAboutRoomBinding>(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
private var mRoomId: String = roomId
private var mUserId: String = userId
private var mUsername: String = username
private var mAvatar: String = avatar
// 定义回调接口
private var onConfirmCallback: ((String) -> Unit)? = null
@@ -65,7 +80,7 @@ class RoomAboutDialog (context: Context) :
override fun initData() {
// 初始化数据,如果需要的话
RetrofitClient.getInstance().wallet(object : BaseObserver<WalletBean>(){
RetrofitClient.getInstance().wallet(object : BaseObserver<WalletBean>() {
override fun onSubscribe(d: Disposable) {
}
@@ -73,6 +88,23 @@ class RoomAboutDialog (context: Context) :
mBinding.tvBalance.text = t.coin ?: "0"
}
})
}
override fun show() {
// 确保参数不为空
if (!TextUtils.isEmpty(mUsername)) {
mBinding.tvName.text = mUsername
}
if (!TextUtils.isEmpty(mAvatar)) {
ImageUtils.loadHead(mAvatar, mBinding.ivAvatar)
}
// 调用父类的 show() 方法
super.show()
}
private fun setupWindow() {

View File

@@ -4,13 +4,19 @@ import android.content.Context
import android.view.Gravity
import android.view.ViewGroup
import androidx.recyclerview.widget.GridLayoutManager
import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.hjq.toast.ToastUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.adapter.RoomTalentAdapter
import com.xscm.modulemain.databinding.DialogRoomDurationBinding
import com.xscm.moduleutil.color.ThemeableDrawableUtils
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.utils.ColorManager
import com.xscm.moduleutil.widget.dialog.BaseDialog
import io.reactivex.disposables.Disposable
/**
* 项目名称:羽声语音
@@ -36,23 +42,30 @@ class RoomDurationDialog (context: Context, val roomId: String) :
if (adapter?.getSelectedValue()?.isEmpty() == true || adapter?.getSelectedValue()==null) {
ToastUtils.show("请选择时间")
} else {//确定
// var messageEvent =
// RoomInputEvent(SpUtil.getUserInfo().nickname + "选择了" + adapter?.getSelectedValue() + "时间")
// (ActivityUtils.getTopActivity() as? RoomActivity)?.let { roomActivity ->
// roomActivity.dialogMessage(messageEvent)
// }
dismiss()
RetrofitClient.getInstance().setPitTime(roomId, adapter?.getSelectedValue()!!.replace("分钟", ""),object :
BaseObserver<String>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: String) {
dismiss()
}
})
}
}
ThemeableDrawableUtils.setThemeableRoundedBackground(
mBinding.tvQd,
ColorManager.getInstance().primaryColorInt,
53
)
mBinding.tvQd.setTextColor(ColorManager.getInstance().buttonColorInt)
val layoutManager = GridLayoutManager(context, 3)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
}
override fun initData() {
time= mutableListOf()
time.clear()
time.add("5分钟")
@@ -65,6 +78,9 @@ class RoomDurationDialog (context: Context, val roomId: String) :
// 处理选中事件
LogUtils.e("选中了: $selectedValue, 位置: $position")
}
val layoutManager = GridLayoutManager(context, 3)
mBinding.recycleView.layoutManager = layoutManager
mBinding.recycleView.adapter = adapter
}
private fun setupWindow() {

View File

@@ -6,12 +6,9 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.GridLayoutManager
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.ScreenUtils
import com.hjq.toast.ToastUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.adapter.RoomWishGiftAdapter
import com.xscm.modulemain.adapter.SetupCustomGiftAdapter
import com.xscm.modulemain.databinding.DialogSetupCustomGiftBinding
import com.xscm.modulemain.databinding.DialogWishGiftBinding
import com.xscm.moduleutil.bean.RoonGiftModel
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
@@ -48,9 +45,9 @@ class SetupCustomGiftDialog(context: Context, val roomId: String) :
override fun initData() {
// TODO: 这里调用的事设置插队礼物接口
// TODO: 获取自定义礼物
RetrofitClient.getInstance()
.getGiftList(1, roomId, object : BaseObserver<MutableList<RoonGiftModel>>() {
.getNewGiftList(14, "6", object : BaseObserver<MutableList<RoonGiftModel>>() {
override fun onSubscribe(d: Disposable) {
}
@@ -58,14 +55,21 @@ class SetupCustomGiftDialog(context: Context, val roomId: String) :
if (t.isNotEmpty()) {
adapter = SetupCustomGiftAdapter(t) { selectedValue, position ->
// 处理选中事件
LogUtils.e("选中了: $selectedValue, 位置: $position")
if (performInputDialog == null) {
performInputDialog = PerformInputDialog(context)
}
performInputDialog?.show()
LogUtils.e("选中了: $selectedValue, 位置: ${t[position]}")
performInputDialog = PerformInputDialog(context)
performInputDialog?.show(t[position])
performInputDialog?.setOnConfirmListener { content ->
// TODO: 这里表演内容的回调
ToastUtils.show(content)
t[position].new_gift_name=content
RetrofitClient.getInstance().setCustomGift(t[position].gift_id,content,object : BaseObserver<String>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: String) {
performInputDialog?.dismiss()
adapter?.notifyItemChanged(position)
}
})
}
}
@@ -79,6 +83,7 @@ class SetupCustomGiftDialog(context: Context, val roomId: String) :
}
})
}
private fun setupWindow() {

View File

@@ -38,7 +38,7 @@ class WishGiftDialog(context: Context, val roomId: String) :
}
mBinding.tvQd.setOnClickListener {
if ( adapter?.getSelectedValue()==null) {
ToastUtils.show("请心愿礼物")
ToastUtils.show("选择心愿礼物")
} else {//确定
// var messageEvent =
// RoomInputEvent(SpUtil.getUserInfo().nickname + "选择了" + adapter?.getSelectedValue() + "时间")
@@ -57,8 +57,8 @@ class WishGiftDialog(context: Context, val roomId: String) :
override fun initData() {
// TODO: 这里调用的事设置插队礼物接口
RetrofitClient.getInstance().getGiftList(1,roomId,object : BaseObserver<MutableList<RoonGiftModel>>() {
// TODO: label 15:酒吧房普通礼物 14自定义礼物
RetrofitClient.getInstance().getNewGiftList(15,"6",object : BaseObserver<MutableList<RoonGiftModel>>() {
override fun onSubscribe(d: Disposable) {
}