密码房部分,幸运抽奖部分。

This commit is contained in:
2026-01-26 10:27:29 +08:00
parent 9450a351c5
commit 24c4af95b4
38 changed files with 958 additions and 149 deletions

View File

@@ -0,0 +1,68 @@
package com.xscm.modulemain.dialog
import android.content.Context
import android.view.Gravity
import android.view.ViewGroup
import com.blankj.utilcode.util.ScreenUtils
import com.blankj.utilcode.util.ToastUtils
import com.xscm.modulemain.R
import com.xscm.modulemain.databinding.DialogEditRoomPwdLayoutBinding
import com.xscm.moduleutil.widget.dialog.BaseDialog
class DialogEditRoomPwd(context: Context) : BaseDialog<DialogEditRoomPwdLayoutBinding>(context) {
init {
// 设置对话框的宽度为屏幕宽度
window?.setLayout(
(ScreenUtils.getScreenWidth() * 315f / 375).toInt(),
ViewGroup.LayoutParams.WRAP_CONTENT
)
setCancelable(false)
setCanceledOnTouchOutside(false)
}
override fun getLayoutId(): Int {
return R.layout.dialog_edit_room_pwd_layout
}
private var onDialogDismissListener:OnDialogDismissListener? = null
override fun initView() {
mBinding.ivClose.setOnClickListener {
onDialogDismissListener?.onDialogDismiss()
dismiss()
}
mBinding.tvCancel.setOnClickListener {
onDialogDismissListener?.onDialogDismiss()
dismiss()
}
mBinding.tvConfirm.setOnClickListener {
if (mBinding.etRoomPwd.text.toString().trim()
.isNotEmpty() && mBinding.etRoomPwd.text.toString().trim().length == 4
) {
onDialogDismissListener?.onPwdListener(mBinding.etRoomPwd.text.toString().trim())
dismiss()
} else {
ToastUtils.showShort("请输入正确密码!")
}
}
}
override fun initData() {
}
fun show(onDialogDismissListener: OnDialogDismissListener) {
super.show()
this.onDialogDismissListener = onDialogDismissListener
}
interface OnDialogDismissListener {
fun onPwdListener(pwd: String)
fun onDialogDismiss()
}
}

View File

@@ -0,0 +1,136 @@
package com.xscm.modulemain.dialog
import android.content.Context
import android.view.Gravity
import android.view.View
import com.blankj.utilcode.util.ToastUtils
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.opensource.svgaplayer.SVGACallback
import com.opensource.svgaplayer.SVGAParser
import com.opensource.svgaplayer.SVGAVideoEntity
import com.xscm.modulemain.R
import com.xscm.modulemain.databinding.DialogLuckyDrawLayoutBinding
import com.xscm.moduleutil.widget.dialog.BaseDialog
class DialogLuckyDraw(context: Context) : BaseDialog<DialogLuckyDrawLayoutBinding>(context) {
init {
window?.apply {
setGravity(Gravity.BOTTOM)
}
setCancelable(false)
setCanceledOnTouchOutside(false)
}
private var isLottery = false
override fun getLayoutId(): Int {
return R.layout.dialog_lucky_draw_layout
}
override fun initView() {
mBinding.ivClose.setOnClickListener {
dismiss()
}
mBinding.iv1.setOnClickListener {
lottery(1)
}
mBinding.iv10.setOnClickListener {
lottery(10)
}
mBinding.iv100.setOnClickListener {
lottery(100)
}
mBinding.ivOnOrOff.tag = 1
mBinding.ivOnOrOff.setOnClickListener {
if (mBinding.ivOnOrOff.tag == 1) {
mBinding.ivOnOrOff.tag = 0
mBinding.ivOnOrOff.setImageResource(R.mipmap.icon_lucky_donghua_pre)
} else {
mBinding.ivOnOrOff.tag = 1
mBinding.ivOnOrOff.setImageResource(R.mipmap.icon_lucky_donghua_nor)
}
}
}
//913073443 13837096053
private fun lottery(count: Int) {
if (isLottery) {
ToastUtils.showShort("正在抽取中...")
return
}
isLottery = true
if (mBinding.ivOnOrOff.tag == 1) {
startAnim()
}
fetchLotteryResult(count)
}
override fun initData() {
}
private fun fetchLotteryResult(count: Int) {
}
private fun showLotteryResult() {
}
private fun startAnim() {
mBinding.svgaAnim.visibility = View.VISIBLE
// 停止并清除当前动画
mBinding.svgaAnim.stopAnimation()
mBinding.svgaAnim.clear()
// 使用SVGAParser重新解析
val parser = SVGAParser(context)
parser.decodeFromAssets("room_wish_crystal_animation.svga",
object : SVGAParser.ParseCompletion {
override fun onComplete(videoItem: SVGAVideoEntity) {
mBinding.svgaAnim.setVideoItem(videoItem)
mBinding.svgaAnim.clearsAfterStop = true
// 设置回调
mBinding.svgaAnim.callback = object : SVGACallback {
override fun onFinished() {
isLottery = false
mBinding.svgaAnim.visibility = View.GONE
mBinding.ivSvgaBg.visibility = View.VISIBLE
}
override fun onPause() {}
override fun onRepeat() {}
override fun onStep(frame: Int, percentage: Double) {
if (frame == 1) {
mBinding.ivSvgaBg.visibility = View.INVISIBLE
}
}
}
// 开始动画
mBinding.svgaAnim.startAnimation()
}
override fun onError() {
// 处理错误
}
})
}
class itemAdapter : BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_lottery_gift_layout) {
override fun convert(helper: BaseViewHolder, item: String) {
helper.setText(R.id.tv_name, item)
}
}
}

View File

@@ -211,6 +211,11 @@ public class RoomOnlineDialogFragment extends BaseMvpDialogFragment<RoomPresente
}
@Override
public void beforeJoinRoomCheck(Boolean isJoinRoom, int errorCode, String roomId) {
}
@Override
public void showPasswordDialog() {