From 0bf9922be7aa71944554c74c05242e4595a14221 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Wed, 3 Dec 2025 17:38:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=90=E4=BB=BB=E5=8A=A1=E6=A0=B9=E6=8D=AEst?= =?UTF-8?q?ate=20=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/benefit/BenefitActivity.kt | 15 ++++++ .../benefit/widget/BenefitTaskItemView.kt | 16 ++++-- .../vididin/manager/helpers/BoxTaskHelper.kt | 51 +++++++++++++++++++ app/src/main/res/values/strings.xml | 10 ++++ 4 files changed, 88 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt b/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt index 621617a..8495da6 100644 --- a/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt +++ b/app/src/main/java/com/gamedog/vididin/features/benefit/BenefitActivity.kt @@ -27,6 +27,8 @@ import com.gamedog.vididin.main.MainViewModel as ViewModel @AndroidEntryPoint class BenefitActivity : AppViewsActivity(), OnTabStyleListener { + private val mSubTaskViewList = mutableListOf() + override val mViewModel: ViewModel by viewModels() override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater) @@ -64,6 +66,7 @@ class BenefitActivity : AppViewsActivity(), OnT private fun initViewsByTaskState() { initAddSubTaskViews() + updateSubTasksUI() updateTopBoxesUI() } @@ -81,10 +84,22 @@ class BenefitActivity : AppViewsActivity(), OnT subViewParam.topMargin = ResUtil.getPixelSize(R.dimen.dp10) subViewParam.bottomMargin = ResUtil.getPixelSize(R.dimen.dp10) binding.llSubTaskContainer.addView(subTaskView, subViewParam) + + mSubTaskViewList.add(subTaskView) } } + private fun updateSubTasksUI() { + val taskStateHelper = TaskManager.instance().boxTaskStatus() + val currentBoxIndex = taskStateHelper.getCurrentBoxIndex() + val subTaskStateList = taskStateHelper.getStatusBean().tasks[currentBoxIndex].tasks + if (subTaskStateList.size == mSubTaskViewList.size) { + mSubTaskViewList.forEachIndexed { index, view -> + view.updateUIByState(subTaskStateList[index], currentBoxIndex,index) + } + } + } private fun updateTopBoxesUI() { val taskStateHelper = TaskManager.instance().boxTaskStatus() diff --git a/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt b/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt index 345db02..2e71a0e 100644 --- a/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt @@ -6,6 +6,8 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.ama.core.architecture.util.setOnClickBatch import com.gamedog.vididin.databinding.BenefitTaskItemViewBinding +import com.gamedog.vididin.manager.TaskManager +import com.gamedog.vididin.manager.taskbeans.TaskStateBoxSub class BenefitTaskItemView @JvmOverloads constructor( @@ -40,11 +42,17 @@ class BenefitTaskItemView @JvmOverloads constructor( } - fun setProgressInfo(progress: String) { - mBinding.tvProgressInfo.text = progress + fun updateUIByState(subTaskState: TaskStateBoxSub, boxIndex: Int, subTaskIndex: Int) { + with (mBinding) { + val finishNum = if (subTaskState.finishedNum > subTaskState.required_count) subTaskState.required_count else subTaskState.finishedNum + val progressNum: Int = finishNum * 100 / subTaskState.required_count + + //ivItemIcon.setImageResource(R.mipmap.icon_cash_s) + tvItemTitle.setText(TaskManager.instance().boxTaskStatus().getSubTaskHintStrRes(boxIndex, subTaskIndex)) + progressBar.setProgress(progressNum) + tvProgressInfo.text = "($finishNum/${subTaskState.required_count})" + } } - - } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt index 155d890..d214a31 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/BoxTaskHelper.kt @@ -2,6 +2,7 @@ package com.gamedog.vididin.manager.helpers import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.SpUtil +import com.gamedog.vididin.R import com.gamedog.vididin.main.fragments.task.BoxTaskRoot import com.gamedog.vididin.manager.taskbeans.TaskStateBox import com.gamedog.vididin.manager.taskbeans.TaskStateBoxRoot @@ -115,8 +116,58 @@ class BoxTaskHelper: BaseTaskHelper() { return waitClaimCashNum } + fun getSubTaskHintStrRes(boxIndex: Int, subTaskIndex: Int): Int { + when (boxIndex) { + 0-> { + when (boxIndex) { + 0-> { + return R.string.box_subtask_hint_1_1 + } + 1-> { + return R.string.box_subtask_hint_1_1 + } + 2-> { + return R.string.box_subtask_hint_1_1 + } + } + } + 1-> { + when (boxIndex) { + 0-> { + return R.string.box_subtask_hint_2_1 + } + + 1-> { + return R.string.box_subtask_hint_2_1 + } + + 2-> { + return R.string.box_subtask_hint_2_1 + } + } + } + + 2-> { + when (boxIndex) { + 0-> { + return R.string.box_subtask_hint_3_1 + } + + 1-> { + return R.string.box_subtask_hint_3_1 + } + + 2-> { + return R.string.box_subtask_hint_3_1 + } + } + } + } + + return 0 + } } \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a5202b7..b018525 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -95,4 +95,14 @@ Benefícios + Assistir a 1 anúncio + Assistir a 3 vídeos + Concluir 1 check-in + Assistir a 15 anúncios + Assistir a 30 vídeos + Participar de 1 compra gratuita + Assistir a 30 anúncios + Assistir a 50 vídeos + Participar de 10 compras gratuitas + \ No newline at end of file