From f889dc50726ebc1be526888033dafd2a9e6ac1f0 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Mon, 15 Dec 2025 11:39:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0subBean=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/withdraw/WithDrawSubActivity.kt | 51 ++++++++++++++++++- .../dialogs/WithdrawInfoConfirmDialog.kt | 2 +- .../vididin/manager/WithdrawManager.kt | 18 +++++++ .../main/res/layout/activity_withdraw_sub.xml | 3 +- app/src/main/res/values/strings.xml | 4 +- 5 files changed, 73 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawSubActivity.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawSubActivity.kt index 0e1fe60..37a444f 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawSubActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawSubActivity.kt @@ -7,10 +7,12 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.CommonItemDecoration +import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.setOnClickBatch import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.beans.WatchAdNotifyBean +import com.gamedog.vididin.features.withdraw.dialogs.WithdrawInfoConfirmDialog import com.gamedog.vididin.manager.WithdrawItemBean import com.gamedog.vididin.manager.WithdrawManager import com.gamedog.vididin.router.Router @@ -44,7 +46,15 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { setOnClickBatch(flAction) { when(this) { flAction -> { - gotoWatchAd() + when (mCurItem.subItemList[mCurItem.selectedSubIndex].withdrawState) { + 0 -> { + gotoWatchAd() + } + + 1 -> { + WithdrawInfoConfirmDialog(this@WithDrawSubActivity).show() + } + } } } } @@ -63,7 +73,7 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { VididinEvents.EVENT_WITHDRAW_SUB_ITEM_PROGRESS_UPDATED -> { if ((data.mData as Int) == mCurItem.selectedSubIndex) { - progressBar.setProgress(mCurItem.subItemList[mCurItem.selectedSubIndex].currentProgress) + updateProgressUI() } } @@ -101,6 +111,43 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { } } + private fun updateProgressUI() { + with(binding) { + val subBean = mCurItem.subItemList[mCurItem.selectedSubIndex] + val curProgress = subBean.currentProgress + progressBar.setProgress(curProgress) + + tvAction.setCompoundDrawables(if (curProgress < 100) ResUtil.getDrawable(R.mipmap.task_video) else null, null, null, null) + if (curProgress < 100) { + tvAction.setText(R.string.withdraw_cash_out) + tvAction.isClickable = true + flAction.alpha = 1F + } else { + var actionText = R.string.withdraw_cash_out + when(subBean.withdrawState) { + 0 -> { + actionText = R.string.withdraw_cash_out + tvAction.isClickable = true + flAction.alpha = 1F + } + + 1 -> { + actionText = R.string.pending + tvAction.isClickable = false + flAction.alpha = 0.6F + } + + 2 -> { + actionText = R.string.withdraw_success + tvAction.isClickable = false + flAction.alpha = 0.6F + } + } + tvAction.setText(actionText) + } + } + } + override fun ViewBinding.initObservers() { } diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawInfoConfirmDialog.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawInfoConfirmDialog.kt index 22c653c..1be6824 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawInfoConfirmDialog.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/dialogs/WithdrawInfoConfirmDialog.kt @@ -11,7 +11,7 @@ import com.gamedog.vididin.core.login.login.AccountManager import com.vididin.real.money.game.databinding.DialogWithdrawInfoConfirmBinding as ViewBinding -class WithdrawInfoConfirmDialog(context: Activity, ) : BindingDialog(context, ViewBinding::inflate) { +class WithdrawInfoConfirmDialog(context: Activity) : BindingDialog(context, ViewBinding::inflate) { private var mWithdrawCashNum: Float = 0F diff --git a/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt b/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt index 37d8725..e8ea3f1 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt @@ -4,6 +4,7 @@ import com.ama.core.architecture.util.AndroidUtil import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.manager.WithdrawManager.Companion.STATE_NEED_WATCH_AD class WithdrawManager private constructor() { @@ -22,6 +23,12 @@ class WithdrawManager private constructor() { companion object { const val EACH_SUB_ITEM_CASH_NUM: Float = 1F + const val STATE_NEED_WATCH_AD: Int = 0 + const val STATE_COULD_WITHDRAW: Int = 1 + const val STATE_WITHDRAWING: Int = 2 + const val STATE_HAS_WITHDRAWED: Int = 3 + + @Volatile private var instance: WithdrawManager? = null fun instance(): WithdrawManager { @@ -97,12 +104,21 @@ class WithdrawManager private constructor() { val needEarnProgress = 100 - subBean.startProgress if (subBean.hasEarnMoneyByAd >= subBean.cashTotal) { subBean.currentProgress = 100 + // update state + if (subBean.withdrawState == STATE_NEED_WATCH_AD) { + subBean.withdrawState = STATE_COULD_WITHDRAW + } } else { val newProgress = subBean.startProgress + (needEarnProgress * (subBean.hasEarnMoneyByAd / subBean.cashTotal)).toInt() subBean.currentProgress = if (newProgress >= 100) 99 else newProgress } } + fun updateSubBeanState(subBean: WithdrawSubItem, newState: Int) { + subBean.withdrawState = newState + saveInfos2Sp(mItemList) + } + } @@ -112,6 +128,7 @@ data class WithdrawItemBean( var totalProgress: Int = 0, val subItemList: List = emptyList(), var selectedSubIndex: Int = 0, + val startMs: Long = 0, ) data class WithdrawSubItem( @@ -120,4 +137,5 @@ data class WithdrawSubItem( val startProgress: Int = 0, var currentProgress: Int = 0, var hasEarnMoneyByAd: Float = 0F, + var withdrawState: Int = STATE_NEED_WATCH_AD, ) \ No newline at end of file diff --git a/app/src/main/res/layout/activity_withdraw_sub.xml b/app/src/main/res/layout/activity_withdraw_sub.xml index 5b87d1c..ff0756f 100644 --- a/app/src/main/res/layout/activity_withdraw_sub.xml +++ b/app/src/main/res/layout/activity_withdraw_sub.xml @@ -183,11 +183,12 @@ android:layout_marginTop="5dp" android:padding="12dp"> Your have reached the times limit. 0utros Erro Valor do saque - Saque Já + Sacar Agora + Pendente + Suceder 100%! Pix lmediato na Sua Contal! Regras 1. Grandes quantias em dinheiro sro distribuidas em vários dias;todas asrecompensas sao reais e válidas.\n2. Assistir a videos na p¡gina atual pode aumentar o progresso datarefa. Quando oprogresso atingir 100%, a recompensa diária emdinheiro pode ser reivindicada.\n3. Após reivindicar uma recompensa com sucesso, vocé podereceber a proximarecompensa em dinheiro no dia sequinte.4. Se a reivindicacao falhar, verifique se as informac\'es da contaestaopreenchidas corretamente e tente reivindicar a recompensaem dinheironovamente.\n5.Se houver comportamento de fraude, o sistema banirá a contae a colocara na