0元购 接入领取奖励 确认、绑定银行dialog

This commit is contained in:
renhaoting 2025-12-25 16:53:59 +08:00
parent 461a24de94
commit 95cb9da2af
5 changed files with 63 additions and 2 deletions

View File

@ -18,6 +18,7 @@ import com.vididin.real.money.game.databinding.DialogWithdrawBindingBankBinding
class WithdrawBindBankDialog(activity: Activity, private val onConfirmedWithdraw: ((cashNum: Float)->Unit)?) : BindingDialog<ViewBinding>(activity, ViewBinding::inflate) {
private var mWithdrawCashNum: Float = 0F
private var mWithdrawCashNumStr: String = ""
init {
build()
@ -40,7 +41,13 @@ class WithdrawBindBankDialog(activity: Activity, private val onConfirmedWithdraw
tvConfirm -> {
saveBankAccount(mBinding.tvCpfEdit.text.toString().trim())
if (mWithdrawCashNum > 0F) {
WithdrawInfoConfirmDialog(mActivity, onConfirmedWithdraw!!).setWithDrawCashNum(mWithdrawCashNum).show()
val dialogBuilder = WithdrawInfoConfirmDialog(mActivity, onConfirmedWithdraw!!)
if (mWithdrawCashNum > 0F) {
dialogBuilder.setWithDrawCashNum(mWithdrawCashNum)
} else {
dialogBuilder.setWithDrawCashNumStr(mWithdrawCashNumStr)
}
dialogBuilder.show()
}
dismiss()
@ -115,5 +122,14 @@ class WithdrawBindBankDialog(activity: Activity, private val onConfirmedWithdraw
return this
}
fun setWithDrawCashNumStr(withdrawNumStr: String): WithdrawBindBankDialog {
mWithdrawCashNumStr = withdrawNumStr
if (mWithdrawCashNum == 0F) {
mBinding.tvConfirm.text = ResUtil.getString(R.string.confirm)
}
return this
}
}

View File

@ -14,6 +14,7 @@ import com.vididin.real.money.game.databinding.DialogWithdrawInfoConfirmBinding
class WithdrawInfoConfirmDialog(context: Activity, private val onConfirmed: (cashNum: Float)->Unit) : BindingDialog<ViewBinding>(context, ViewBinding::inflate) {
private var mWithdrawCashNum: Float = 0F
private var mWithdrawCashNumStr: String = ""
init {
build()
@ -67,5 +68,16 @@ class WithdrawInfoConfirmDialog(context: Activity, private val onConfirmed: (cas
return this
}
fun setWithDrawCashNumStr(withdrawNumStr: String): WithdrawInfoConfirmDialog {
mWithdrawCashNumStr = withdrawNumStr
mBinding.tvCashNum.text = buildString {
append(mWithdrawCashNumStr)
}
mBinding.tvCpfAccount.text = AccountManager.getBankInfo()?.bankAccount
return this
}
}

View File

@ -1,11 +1,19 @@
package com.gamedog.vididin.features.zero.dialogs
import android.app.Activity
import com.ama.core.architecture.util.AndroidUtil
import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog
import com.gamedog.vididin.beans.ZeroBuyItem
import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawBindBankDialog
import com.gamedog.vididin.features.withdraw.dialogs.WithdrawInfoConfirmDialog
import com.gamedog.vididin.manager.WithdrawManager.Companion.TRANSACTION_STATE_ONGOING
import com.gamedog.vididin.manager.WithdrawManager.Companion.TRANSACTION_STATE_SUCCESS
import com.gamedog.vididin.manager.ZeroManager
import com.vididin.real.money.game.R
import com.vididin.real.money.game.databinding.DialogZeroBuyWinBinding as ViewBinding
@ -46,9 +54,28 @@ class ZeroBuyWinDialog(context: Activity, private val item: ZeroBuyItem) : Bindi
private fun handleWithdraw(item: ZeroBuyItem) {
ZeroManager.instance().addWinWithdrawItem(item)
val zeroWithdrawInfoItem = ZeroManager.instance().getZeroWithdrawItem(item)
if (ZeroManager.instance().couldStartWithdraw(item)) {
ZeroManager.instance().startWithdrawForWinPurchase(item)
val onConfirmed: (cashNum: Float)->Unit = {
}
if (AccountManager.isBankAccountExist()) {
WithdrawInfoConfirmDialog(mActivity, onConfirmed).setWithDrawCashNumStr(zeroWithdrawInfoItem.winCashNumStr!!).show()
} else {
WithdrawBindBankDialog(activity = mActivity, onConfirmed).setWithDrawCashNumStr(zeroWithdrawInfoItem.winCashNumStr!!).show()
}
} else {
when (zeroWithdrawInfoItem.withdrawState) {
TRANSACTION_STATE_ONGOING -> {
AndroidUtil.showToast(R.string.claim_reward_onging)
}
TRANSACTION_STATE_SUCCESS -> {
AndroidUtil.showToast(R.string.has_claimed_reward)
}
}
}
}

View File

@ -80,6 +80,10 @@ class ZeroManager private constructor() {
}
}
fun getZeroWithdrawItem(zeroItem: ZeroBuyItem): WinZeroWithdrawInfoItem {
return mWinZeroList.filter { zeroItem.id == it.purchase_id }[0]
}
fun couldStartWithdraw(zeroItem: ZeroBuyItem): Boolean {
val userId = AccountManager.getAccount().userId
zeroItem.winners?.let {

View File

@ -203,6 +203,8 @@
<string name="record_gold_title_convert_2_cash">Convert Notes</string>
<string name="record_gold_descr_convert_2_cash">You have exchanged %d gold coins.</string>
<string name="net_error">Erro de rede</string>
<string name="claim_reward_onging">This purchase reward claim is ongoing.</string>
<string name="has_claimed_reward">You have claimed this reward.</string>
</resources>