From 1e73375a16bebdc75aa58c9230132abb049bc9cf Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Mon, 15 Dec 2025 11:54:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20selectingIndex=20=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/withdraw/WithDrawSubActivity.kt | 29 ++++++++++++++----- .../features/withdraw/WithdrawSubAdapter.kt | 5 +++- .../vididin/manager/WithdrawManager.kt | 1 - .../res/layout/layout_item_withdraw_sub.xml | 1 + .../ama/core/architecture/util/DateUtil.kt | 10 +++---- 5 files changed, 31 insertions(+), 15 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 37a444f..a5b6955 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,6 +7,7 @@ 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.DateUtil import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.setOnClickBatch import com.gamedog.vididin.VidiConst @@ -25,8 +26,11 @@ import com.vididin.real.money.game.databinding.ActivityWithdrawSubBinding as Vie @AndroidEntryPoint class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { private lateinit var mCurItem: WithdrawItemBean + private var mSelectingIndex: Int = 0 private var mType: Int = 0 - private val mAdapter: WithdrawSubAdapter by lazy { WithdrawSubAdapter() } + private val mAdapter: WithdrawSubAdapter by lazy { WithdrawSubAdapter( { itemIndex -> + handleSubItemClicked(itemIndex) + }) } override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater) @@ -46,7 +50,7 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { setOnClickBatch(flAction) { when(this) { flAction -> { - when (mCurItem.subItemList[mCurItem.selectedSubIndex].withdrawState) { + when (mCurItem.subItemList[mSelectingIndex].withdrawState) { 0 -> { gotoWatchAd() } @@ -60,6 +64,14 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { } } + private fun handleSubItemClicked(itemIndex: Int) { + val mMaxDayIndex = DateUtil.getDaysPassed(mCurItem.startMs) + if (itemIndex >= 0 && itemIndex <= mMaxDayIndex) { + mSelectingIndex = itemIndex + updateUI() + } + } + private fun gotoWatchAd() { Router.WatchAd.startActivity(this, VidiConst.WATCH_AD_FOR_WITHDRAW_BIG, AndroidUtil.object2Json(mCurItem)) } @@ -72,7 +84,7 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { } VididinEvents.EVENT_WITHDRAW_SUB_ITEM_PROGRESS_UPDATED -> { - if ((data.mData as Int) == mCurItem.selectedSubIndex) { + if ((data.mData as Int) == mSelectingIndex) { updateProgressUI() } } @@ -87,33 +99,34 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity() { mCurItem = WithdrawManager.instance().getItem(mType) + mSelectingIndex = DateUtil.getDaysPassed(mCurItem.startMs) updateUI() } private fun handleAdWatched(adNotifyBean: WatchAdNotifyBean) { val withdrawItemBean = adNotifyBean.extraData if (WithdrawManager.instance().addAdEarnForSubBean(withdrawItemBean.index, - withdrawItemBean.selectedSubIndex, adNotifyBean.earnMoneyNum)) { + mSelectingIndex, adNotifyBean.earnMoneyNum)) { updateUI() } } private fun updateUI() { with(binding) { - mAdapter.mSelectedSubIndex = mCurItem.selectedSubIndex + mAdapter.mSelectedSubIndex = mSelectingIndex mAdapter.submitList(mCurItem.subItemList) - recyclerView.scrollToPosition(mCurItem.selectedSubIndex) + recyclerView.scrollToPosition(mSelectingIndex) tvCashTotal.text = mCurItem.totalCashNum.toString() progressBar.enableTouch(false) progressBar.setBarColor(forColor = R.color.green_ce) - progressBar.setProgress(mCurItem.subItemList[mCurItem.selectedSubIndex].currentProgress) + progressBar.setProgress(mCurItem.subItemList[mSelectingIndex].currentProgress) } } private fun updateProgressUI() { with(binding) { - val subBean = mCurItem.subItemList[mCurItem.selectedSubIndex] + val subBean = mCurItem.subItemList[mSelectingIndex] val curProgress = subBean.currentProgress progressBar.setProgress(curProgress) diff --git a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithdrawSubAdapter.kt b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithdrawSubAdapter.kt index 28072ae..c8e83da 100644 --- a/app/src/main/java/com/gamedog/vididin/features/withdraw/WithdrawSubAdapter.kt +++ b/app/src/main/java/com/gamedog/vididin/features/withdraw/WithdrawSubAdapter.kt @@ -12,7 +12,7 @@ import com.gamedog.vididin.manager.WithdrawSubItem import com.vididin.real.money.game.R import com.vididin.real.money.game.databinding.LayoutItemWithdrawSubBinding as ViewBinding -class WithdrawSubAdapter() : ListAdapter(DiffCallback()) { +class WithdrawSubAdapter(private val selectCallback: (index: Int)->Unit) : ListAdapter(DiffCallback()) { var mSelectedSubIndex: Int = 0 @@ -22,6 +22,9 @@ class WithdrawSubAdapter() : ListAdapter = emptyList(), - var selectedSubIndex: Int = 0, val startMs: Long = 0, ) diff --git a/app/src/main/res/layout/layout_item_withdraw_sub.xml b/app/src/main/res/layout/layout_item_withdraw_sub.xml index 70b06e1..9540a15 100644 --- a/app/src/main/res/layout/layout_item_withdraw_sub.xml +++ b/app/src/main/res/layout/layout_item_withdraw_sub.xml @@ -1,6 +1,7 @@ diff --git a/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt b/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt index ef59fce..b038d91 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/util/DateUtil.kt @@ -75,20 +75,20 @@ class DateUtil private constructor() { /** * 从起始时间到现在已经过去多少天 */ - fun getDaysPassed(startTime: Any): Long { + fun getDaysPassed(startTime: Any): Int { val startTimestamp = when (startTime) { is Long -> startTime is Date -> startTime.time - is String -> stringToTimestamp(startTime) ?: 0L - else -> 0L + is String -> stringToTimestamp(startTime) ?: 0 + else -> 0 } - if (startTimestamp == 0L) return 0L + if (startTimestamp == 0L) return 0 val currentTime = System.currentTimeMillis() val diffMillis = currentTime - startTimestamp - return TimeUnit.MILLISECONDS.toDays(diffMillis) + return TimeUnit.MILLISECONDS.toDays(diffMillis).toInt() }