From 38b8a8d23ca72bdbb69efb52b7c0efcee58b116d Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Mon, 22 Dec 2025 17:00:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E7=8E=B0=E9=80=BB=E8=BE=91=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/withdraw/WithDrawActivity.kt | 6 +- .../withdraw/widget/WithDrawItemView.kt | 18 ++-- .../vididin/main/fragments/TasksFragment.kt | 2 +- .../vididin/manager/WithdrawManager.kt | 85 +++++++++++++++++-- app/src/main/res/layout/activity_withdraw.xml | 1 + .../src/main/res/layout/custom_title_bar.xml | 2 - 6 files changed, 97 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt index cac4c05..811e18f 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithDrawActivity.kt @@ -128,7 +128,7 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity() { } private fun updateUICashTotal() { - binding.tvCashTotal.text = AccountManager.getCash().toString() + binding.tvCashTotal.text = String.format("%.2f", AccountManager.getCash()) binding.tvAllCashHasWithdrawed.text = buildString { append(ResUtil.getString(R.string.cash)) append(" ") @@ -156,7 +156,7 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity() { showTransactionResultDialog(record) } updateUICashTotal() - mItemViewList[record.itemIndex].updateProgressUI() + mItemViewList[record.itemIndex].updateProgressAndButUI() } catch (e: Exception) { e.printStackTrace() } @@ -286,7 +286,7 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity() { } private fun gotoWithdrawSubActivity(selectedIndex: Int) { - Router.WithdrawSub.startActivity(this, selectedIndex - 1) + Router.WithdrawSub.startActivity(this, selectedIndex) } diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/widget/WithDrawItemView.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/widget/WithDrawItemView.kt index 337f5b3..5261a7a 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/widget/WithDrawItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/widget/WithDrawItemView.kt @@ -31,12 +31,13 @@ class WithDrawItemView @JvmOverloads constructor( fun setNumAndAction(itemIndex: Int, cashNum: Float, clickAction: (Int)->Unit) { mItemIndex = itemIndex mCashNum = cashNum - mBinding.tvWithdrawNum.text = ResUtil.getString(R.string.cash) + " " + cashNum.toString() + mBinding.tvWithdrawNum.text = ResUtil.getString(R.string.cash) + " " + + if (cashNum.toString().endsWith(".0")) cashNum.toString().substring(0, cashNum.toString().indexOf(".0")) else cashNum.toString() mBinding.tvSacar.setOnClickListener { clickAction.invoke(mItemIndex) } - updateProgressUI() + updateProgressAndButUI() } @@ -44,12 +45,17 @@ class WithDrawItemView @JvmOverloads constructor( return mCashNum } - fun updateProgressUI() { - val progressIntNum: Float = WithdrawManager.instance().getHasWithdrawSuccessCashCount(mItemIndex) + fun updateProgressAndButUI() { + var itemProgress = WithdrawManager.instance().getItemProgress(mItemIndex) * 100 + //var itemState = WithdrawManager.instance().getItemState(mItemIndex) with(mBinding) { - progressBar.setProgress(progressIntNum.toInt()) - tvProgress.text = String.format("%.2f", progressIntNum).toString() + ResUtil.getString(R.string.percent) + progressBar.setProgress(itemProgress.toInt()) + tvProgress.text = String.format("%.2f", itemProgress) + ResUtil.getString(R.string.percent) + + var canClickable: Boolean = itemProgress >= 100F + tvSacar.isClickable = canClickable + tvSacar.alpha = if (canClickable) 1F else 0.5F } } diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index a9acfb5..85c85ff 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -217,7 +217,7 @@ class TasksFragment : AppViewsFragment(), OnTab binding?.tvCashTotal?.text = buildString { append(ResUtil.getString(R.string.cash)) append(" ") - append(AccountManager.getCash()) + append(String.format("%.2f", AccountManager.getCash())) } } 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 1c181af..7905cee 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/WithdrawManager.kt @@ -47,6 +47,13 @@ class WithdrawManager private constructor() { companion object { const val EACH_SUB_ITEM_CASH_NUM: Float = 1F + // subBean 状态 + const val ITEM_STATE_CANNOT_START: Int = 0 + const val ITEM_STATE_CAN_START: Int = 1 + const val ITEM_STATE_STARTED: Int = 2 + + + // subBean 状态 const val STATE_NEED_WATCH_AD: Int = 0 const val STATE_COULD_WITHDRAW: Int = 1 @@ -83,11 +90,12 @@ class WithdrawManager private constructor() { private fun generateItemList(): MutableList { val itemList = mutableListOf() - itemList.add(WithdrawItemBean(0, 10F, AndroidUtil.randomInt(50, 70), generateSubItemList(10F))) - itemList.add(WithdrawItemBean(1, 20F, AndroidUtil.randomInt(50, 70), generateSubItemList(20F))) - itemList.add(WithdrawItemBean(2, 50F, AndroidUtil.randomInt(50, 70), generateSubItemList(50F))) - itemList.add(WithdrawItemBean(3, 100F, AndroidUtil.randomInt(50, 70), generateSubItemList(100F))) - itemList.add(WithdrawItemBean(4, 300F, AndroidUtil.randomInt(50, 70), generateSubItemList(300F))) + itemList.add(WithdrawItemBean(0, 0.1F, isBigWithDraw = false)) + itemList.add(WithdrawItemBean(1, 10F, AndroidUtil.randomInt(50, 70), generateSubItemList(10F))) + itemList.add(WithdrawItemBean(2, 20F, AndroidUtil.randomInt(50, 70), generateSubItemList(20F))) + itemList.add(WithdrawItemBean(3, 50F, AndroidUtil.randomInt(50, 70), generateSubItemList(50F))) + itemList.add(WithdrawItemBean(4, 100F, AndroidUtil.randomInt(50, 70), generateSubItemList(100F))) + itemList.add(WithdrawItemBean(5, 300F, AndroidUtil.randomInt(50, 70), generateSubItemList(300F))) return itemList } @@ -399,6 +407,71 @@ class WithdrawManager private constructor() { return failTextRes } + private fun getStartedItemRestCashNum(itemIndex: Int): Float { + if (itemIndex in 0..mItemList.size-1) { + val curItem = mItemList[itemIndex] + if (curItem.hasStarted) { + var hasWithdrawedCash = 0F + curItem.subItemList.forEach { subItem-> + if (subItem.withdrawState == STATE_HAS_WITHDRAWED) { + hasWithdrawedCash += subItem.cashTotal + } + } + return curItem.totalCashNum - hasWithdrawedCash + } + } + return 0F + } + + private fun getStartedItemRestCashCount(): Float { + var allStartedItemRestCashNum = 0F + mItemList.forEachIndexed { index, item -> + allStartedItemRestCashNum += getStartedItemRestCashNum(index) + } + + return allStartedItemRestCashNum + } + + fun getItemState(itemIndex: Int): Int { + var returnState = ITEM_STATE_CANNOT_START + + AccountManager.getAccount()?.let { + if (itemIndex in 0..mItemList.size-1) { + val curItem = mItemList[itemIndex] + val userCashTotal = it.cashCount + val allStartedItemRestCashNum = getStartedItemRestCashCount() + + if (curItem.hasStarted) { + returnState = ITEM_STATE_STARTED + } else if ((userCashTotal - allStartedItemRestCashNum) >= curItem.totalCashNum) { + returnState = ITEM_STATE_CAN_START + } + } + } + + return returnState + } + + fun getItemProgress(itemIndex: Int): Float { + var itemProgress = 0F + + AccountManager.getAccount()?.let { + if (itemIndex in 0..mItemList.size-1) { + val curItem = mItemList[itemIndex] + val userCashTotal = it.cashCount + val restAvailableCashNum = userCashTotal - getStartedItemRestCashCount() + + if (curItem.hasStarted || restAvailableCashNum >= curItem.totalCashNum) { + itemProgress = 1F + } else { + itemProgress = restAvailableCashNum / curItem.totalCashNum + } + } + } + + return itemProgress + } + } @@ -409,6 +482,8 @@ data class WithdrawItemBean( var totalProgress: Int = 0, val subItemList: List = emptyList(), var startMs: Long = 0L, + var hasStarted: Boolean = false, + var isBigWithDraw: Boolean = true ) data class WithdrawSubItem( diff --git a/app/src/main/res/layout/activity_withdraw.xml b/app/src/main/res/layout/activity_withdraw.xml index f4d3618..5653e3a 100644 --- a/app/src/main/res/layout/activity_withdraw.xml +++ b/app/src/main/res/layout/activity_withdraw.xml @@ -101,6 +101,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="21sp" + android:textStyle="bold" android:textColor="@color/yellow_46" android:text="0" android:layout_marginStart="5dp" diff --git a/core/architecture/src/main/res/layout/custom_title_bar.xml b/core/architecture/src/main/res/layout/custom_title_bar.xml index f4fb44f..7e4e0a6 100644 --- a/core/architecture/src/main/res/layout/custom_title_bar.xml +++ b/core/architecture/src/main/res/layout/custom_title_bar.xml @@ -28,8 +28,6 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerInParent="true" - android:layout_toEndOf="@id/ll_left_root" - android:layout_toStartOf="@+id/ll_right_root" android:gravity="center_vertical" android:orientation="vertical">