1:在酒吧房小黑屋中,点击送礼添加二次弹窗,并且在点击退出房间的时候,添加二次弹框确认

This commit is contained in:
2026-01-14 10:09:45 +08:00
parent dde6ccd578
commit 268c3cdd98
4 changed files with 276 additions and 17 deletions

View File

@@ -0,0 +1,96 @@
package com.xscm.modulemain.dialog.barRoom
import android.content.Context
import android.view.Gravity
import android.view.ViewGroup
import com.blankj.utilcode.util.ScreenUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.databinding.DialogFlirtatiousBinding
import com.xscm.modulemain.databinding.DialogPrivateBinding
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
/**
* 项目名称:羽声语音
* 时间2026/1/13 23:24
* 用途:酒吧房交友小屋送礼添加弹框
*/
class PrivateGiftDialog (context: Context) :
BaseDialog<DialogPrivateBinding>(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
// 定义回调接口
private var onConfirmCallback: ((Boolean) -> Unit)? = null
private var isSelected: Boolean = false
// 设置回调接口的方法
fun setOnConfirmListener(callback: (Boolean) -> Unit): PrivateGiftDialog {
onConfirmCallback = callback
return this
}
override fun getLayoutId(): Int {
return R.layout.dialog_private
}
override fun initView() {
setupWindow()
ThemeableDrawableUtils.setThemeableRoundedBackground(
mBinding.tvConfirm,
ColorManager.getInstance().primaryColorInt,
53
)
mBinding.tvConfirm.setTextColor(ColorManager.getInstance().buttonColorInt)
// 设置点击事件
mBinding.ivClose.setOnClickListener {
dismiss()
}
mBinding.tvConfirm.setOnClickListener {
onConfirmCallback?.invoke(isSelected)
dismiss()
}
mBinding.tvCancel.setOnClickListener {
dismiss()
}
mBinding.vCheckbox.setOnClickListener {
it.isSelected = !it.isSelected
isSelected = it.isSelected
}
}
fun show(giftName: String, sexy_coin: Int) {
super.show()
mBinding.tvTitle.text = "确认送出 ${giftName} 礼物吗?共计需要 ${sexy_coin}个 金币。"
}
override fun initData() {
// 初始化数据,如果需要的话
RetrofitClient.getInstance().wallet(object : BaseObserver<WalletBean>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: WalletBean) {
}
})
}
private fun setupWindow() {
val window = window ?: return
window.setGravity(Gravity.CENTER)
window.setLayout(
(ScreenUtils.getScreenWidth() * 315f / 375).toInt(),
ViewGroup.LayoutParams.WRAP_CONTENT
)
window.setBackgroundDrawableResource(android.R.color.transparent)
val params = window.attributes
params.windowAnimations = com.xscm.moduleutil.R.style.BaseDialogStyleH
window.attributes = params
}
}