From 93543545c5a2e6a20b7c31990168d50ee085293f Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Tue, 2 Dec 2025 15:00:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E9=87=91?= =?UTF-8?q?=E5=B8=81=E9=80=BB=E8=BE=91=E4=B8=BA=20=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vididin/main/fragments/TasksFragment.kt | 16 +++--- .../task/widget/DailyTaskItemView.kt | 43 +++++++++++++--- .../vididin/manager/helpers/BaseTaskHelper.kt | 2 +- .../manager/helpers/DailyWatchAdTaskHelper.kt | 47 +++++++++++------- .../helpers/DailyWatchVideoTaskHelper.kt | 31 ++++++++++-- .../manager/taskbeans/BaseTaskState.kt | 13 +++++ .../manager/taskbeans/TaskDailySignBean.kt | 2 +- .../manager/taskbeans/TaskStateWatchAd.kt | 10 ++-- .../manager/taskbeans/TaskStateWatchVideo.kt | 10 ++-- .../main/res/drawable/bg_sub_task_disable.xml | 7 +++ .../main/res/drawable/bg_sub_task_normal.xml | 9 ++++ .../main/res/layout/daily_task_item_view.xml | 4 +- app/src/main/res/mipmap-xxhdpi/icon_ad.webp | Bin 0 -> 4412 bytes app/src/main/res/values/strings.xml | 1 + 14 files changed, 144 insertions(+), 51 deletions(-) create mode 100644 app/src/main/java/com/gamedog/vididin/manager/taskbeans/BaseTaskState.kt create mode 100644 app/src/main/res/drawable/bg_sub_task_disable.xml create mode 100644 app/src/main/res/drawable/bg_sub_task_normal.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/icon_ad.webp 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 31310d8..16e8973 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 @@ -156,8 +156,8 @@ class TasksFragment : AppViewsFragment(), OnTab mDailyWatchVideoAdViewList.add(watchTaskItemView) binding?.dailyTasksContainer!!.run { - watchTaskItemView.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, - detail.target_count, detail.value, if (index == 0) R.string.resgatar else R.string.go_and_do) + watchTaskItemView.initUI(R.mipmap.icon_ad, R.string.daily_ad_task_title, + detail.target_count, detail.value) addView(watchTaskItemView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) if (true) { @@ -183,7 +183,7 @@ class TasksFragment : AppViewsFragment(), OnTab binding?.dailyTasksContainer!!.run { watchTaskItemView.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, - detail.target_count, detail.value, if (index == 0) R.string.resgatar else R.string.go_and_do) + detail.target_count, detail.value) addView(watchTaskItemView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) if (index != dailyWatchVideoTask.reward_details.size - 1) { @@ -205,16 +205,18 @@ class TasksFragment : AppViewsFragment(), OnTab } private fun updateDailyWatchVideoUI() { - val statusBean = TaskManager.instance().dailyWatchVideoStatus().getStatus() + val statusBean = TaskManager.instance().dailyWatchVideoStatus().getStatusBean() + val subTaskStatusList = statusBean.getSubTaskRewardState() mDailyWatchVideoTaskViewList.forEachIndexed { index, view -> - view.updateProgress(statusBean.getTodayWatchedCount()) + view.updateProgress(statusBean.getTodayWatchedCount(), subTaskStatusList[index].state) } } private fun updateDailyWatchAdUI() { - val statusBean = TaskManager.instance().dailyWatchAdStatus().getStatus() + val statusBean = TaskManager.instance().dailyWatchAdStatus().getStatusBean() + val subTaskStatusList = statusBean.getSubTaskRewardState() mDailyWatchVideoAdViewList.forEachIndexed { index, view -> - view.updateProgress(statusBean.getTodayWatchedAdCount()) + view.updateProgress(statusBean.getTodayWatchedAdCount(), subTaskStatusList[index].state) } } diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt index 1316c5b..50194af 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt @@ -6,7 +6,11 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.setOnClickBatch +import com.gamedog.vididin.R import com.gamedog.vididin.databinding.DailyTaskItemViewBinding +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_CLAIMED +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_FINISH +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING class DailyTaskItemView @JvmOverloads constructor( @@ -35,23 +39,50 @@ class DailyTaskItemView @JvmOverloads constructor( - fun initUI(titleIconRes: Int, titleRes: Int, videosNum: Int, goldReward: Int, actionRes: Int) { + fun initUI(titleIconRes: Int, titleRes: Int, videosNum: Int, goldReward: Int) { mRewardNum = goldReward mNeedWatchTotal = videosNum mBinding.ivItemIcon.setImageResource(titleIconRes) mBinding.tvItemTitle.text = String.format(ResUtil.getString(titleRes), videosNum) - mBinding.tvAction.setText(actionRes) mBinding.tvRewardNum.text = "+$goldReward" mBinding.tvItemProgress.text = "(0/$videosNum)" } - fun updateProgress(finishVideoNum: Int) { - val showWatchedNum = if (finishVideoNum > mNeedWatchTotal) mNeedWatchTotal else finishVideoNum - mBinding.tvItemProgress.text = "($showWatchedNum/$mNeedWatchTotal)" - mBinding.itemProgress.setProgress(100*showWatchedNum/mNeedWatchTotal) + fun updateProgress(watchedCount: Int, subTaskState: Int) { + doUpdateProgress(watchedCount) + + with(mBinding.tvAction) { + when(subTaskState) { + STATE_ONGOING -> { + setText(R.string.go_and_do) + setBackgroundResource(R.drawable.bg_sub_task_normal) + isClickable = true + alpha = 1F + } + + STATE_FINISH -> { + setText(R.string.resgatar) + setBackgroundResource(R.drawable.bg_sub_task_normal) + isClickable = true + alpha = 1F + } + + STATE_CLAIMED -> { + setText(R.string.Resgatado) + setBackgroundResource(R.drawable.bg_sub_task_normal) + isClickable = false + alpha = 0.4F + } + } + } } + private fun doUpdateProgress(finishNum: Int) { + val properShowNumForCurSubTask = if (finishNum > mNeedWatchTotal) mNeedWatchTotal else finishNum + mBinding.tvItemProgress.text = "($properShowNumForCurSubTask/$mNeedWatchTotal)" + mBinding.itemProgress.setProgress(100*properShowNumForCurSubTask/mNeedWatchTotal) + } fun setActionFun(action: ()->Unit) { mAction = action diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseTaskHelper.kt index 5cc08a7..64f0034 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseTaskHelper.kt @@ -40,7 +40,7 @@ abstract class BaseTaskHelper { SpUtil.instance().putObject(mSpKey, mStateBean) } - fun getStatus() : T { + fun getStatusBean() : T { return mStateBean } diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchAdTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchAdTaskHelper.kt index 440f9ab..2b184dd 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchAdTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchAdTaskHelper.kt @@ -1,12 +1,14 @@ package com.gamedog.vididin.manager.helpers import com.ama.core.architecture.util.DateUtil -import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.R import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.core.login.login.AccountManager +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_CLAIMED +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_FINISH +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING import com.gamedog.vididin.manager.taskbeans.TaskStateWatchAd @@ -55,7 +57,7 @@ class DailyWatchAdTaskHelper : BaseTaskHelper() { mStateBean.run { if (!isAllTaskFinish()) { addWatchedCount(newAdWatchedNum) - checkSubTaskFinishState() + calculateNewState() saveState2Sp() notifyEvents() } @@ -63,29 +65,36 @@ class DailyWatchAdTaskHelper : BaseTaskHelper() { } - fun checkSubTaskFinishState() { + fun calculateNewState() { val todayWatchedCount = mStateBean.getTodayWatchedAdCount() mStateBean.getSubTaskRewardState().forEachIndexed { index, subTaskState -> - if (!subTaskState.isFinish && todayWatchedCount >= subTaskState.mTargetAdCount) { - AccountManager.addGold(subTaskState.mRewardNum) - subTaskState.isFinish = true - } - } - } - - fun getAdTaskShowingText() : String { - if (mStateBean.isAllTaskFinish()) { - return ResUtil.getString(R.string.done) - } else { - val subTaskStatusList = mStateBean.getSubTaskRewardState() - subTaskStatusList.forEach { - if (!it.isFinish) { - return it.mRewardNum.toString() + val targetCount = subTaskState.mTargetAdCount + when(subTaskState.state) { + STATE_ONGOING -> { + if (todayWatchedCount >= targetCount) { + subTaskState.state = STATE_FINISH + } } } } - return "" } + fun claimSubTaskReward(subTaskIndex: Int) : Boolean { + if (subTaskIndex >= 0 && subTaskIndex < mStateBean.getSubTaskRewardState().size) { + try { + val subTask = mStateBean.getSubTaskRewardState()[subTaskIndex] + if (subTask.state == STATE_FINISH) { + AccountManager.addGold(subTask.mRewardNum) + return true + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + return false + } + + } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt index 9f83b9a..402af34 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt @@ -5,6 +5,8 @@ import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.eventbus.NotifyMan import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.core.login.login.AccountManager +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_FINISH +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING import com.gamedog.vididin.manager.taskbeans.DailyStateWatchVideoBean @@ -50,7 +52,7 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper() { mStateBean.run { if (!isAllTaskFinish()) { if (addWatchedVideoInfo(dataPair)) { - checkSubTaskFinishState() + calculateNewState() saveState2Sp() notifyEvents() } @@ -59,16 +61,35 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper() { } - fun checkSubTaskFinishState() { + fun calculateNewState() { val todayWatchedCount = mStateBean.getTodayWatchedCount() mStateBean.getSubTaskRewardState().forEachIndexed { index, subTaskState -> - if (!subTaskState.isFinish && todayWatchedCount >= subTaskState.mTargetVideoCount) { - AccountManager.addGold(subTaskState.mRewardNum) - subTaskState.isFinish = true + val targetCount = subTaskState.mTargetVideoCount + when(subTaskState.state) { + STATE_ONGOING -> { + if (todayWatchedCount >= targetCount) { + subTaskState.state = STATE_FINISH + } + } } } } + fun claimSubTaskReward(subTaskIndex: Int) : Boolean { + if (subTaskIndex >= 0 && subTaskIndex < mStateBean.getSubTaskRewardState().size) { + try { + val subTask = mStateBean.getSubTaskRewardState()[subTaskIndex] + if (subTask.state == STATE_FINISH) { + AccountManager.addGold(subTask.mRewardNum) + return true + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + return false + } } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/BaseTaskState.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/BaseTaskState.kt new file mode 100644 index 0000000..2580327 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/BaseTaskState.kt @@ -0,0 +1,13 @@ +package com.gamedog.vididin.manager.taskbeans + +import kotlinx.serialization.Serializable + + +@Serializable +abstract class BaseTaskState { + companion object { + const val STATE_ONGOING = 1 + const val STATE_FINISH = 2 + const val STATE_CLAIMED = 3 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskDailySignBean.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskDailySignBean.kt index 84eddf9..48f3da5 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskDailySignBean.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskDailySignBean.kt @@ -6,7 +6,7 @@ import java.io.Serializable data class TaskDailySignBean( var startDurationMs: Long = 0, val signStateList: MutableList = mutableListOf() -): Serializable { +): BaseTaskState() { init { signStateList.add(DailySignDayInfoBean()) signStateList.add(DailySignDayInfoBean()) diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchAd.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchAd.kt index 4f818c3..d268925 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchAd.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchAd.kt @@ -2,13 +2,13 @@ package com.gamedog.vididin.manager.taskbeans import com.gamedog.vididin.main.fragments.task.RewardDetail -import java.io.Serializable +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING import kotlin.collections.forEach data class TaskStateWatchAd( var todayMs: Long = 0, -): Serializable { +): BaseTaskState() { private var mWatchAdCount: Int = 0 private val mSubTaskRewardState: MutableList = mutableListOf() @@ -21,14 +21,14 @@ data class TaskStateWatchAd( } fun isAllTaskFinish(): Boolean { - return mSubTaskRewardState.all { it.isFinish } + return mSubTaskRewardState.all { it.state > STATE_ONGOING } } fun initSubTaskRewardList(subTasks: List) { mSubTaskRewardState.clear() subTasks.forEach { - mSubTaskRewardState.add(SubAdTaskBean(it.value, it.target_count, false)) + mSubTaskRewardState.add(SubAdTaskBean(it.value, it.target_count, STATE_ONGOING)) } } @@ -47,7 +47,7 @@ data class TaskStateWatchAd( data class SubAdTaskBean( val mRewardNum: Int, val mTargetAdCount: Int, - var isFinish: Boolean = false,) + var state: Int = STATE_ONGOING,) diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchVideo.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchVideo.kt index d6441a9..4b56f3b 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchVideo.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateWatchVideo.kt @@ -1,13 +1,13 @@ package com.gamedog.vididin.manager.taskbeans import com.gamedog.vididin.main.fragments.task.RewardDetail -import java.io.Serializable +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING import java.util.concurrent.ConcurrentHashMap data class DailyStateWatchVideoBean( var todayMs: Long = 0, -): Serializable { +): BaseTaskState() { private val mWatchedMap = ConcurrentHashMap() private val mSubTaskRewardState: MutableList = mutableListOf() @@ -36,14 +36,14 @@ data class DailyStateWatchVideoBean( } fun isAllTaskFinish(): Boolean { - return mSubTaskRewardState.all { it.isFinish } + return mSubTaskRewardState.all { it.state >= STATE_CLAIMED } } fun initSubTaskRewardList(subTasks: List) { mSubTaskRewardState.clear() subTasks.forEach { - mSubTaskRewardState.add(SubTaskBean(it.value, it.target_count, false)) + mSubTaskRewardState.add(SubTaskBean(it.value, it.target_count, STATE_ONGOING)) } } @@ -54,5 +54,5 @@ data class DailyStateWatchVideoBean( data class SubTaskBean( val mRewardNum: Int, val mTargetVideoCount: Int, - var isFinish: Boolean = false,) + var state: Int = STATE_ONGOING,) diff --git a/app/src/main/res/drawable/bg_sub_task_disable.xml b/app/src/main/res/drawable/bg_sub_task_disable.xml new file mode 100644 index 0000000..b84b61e --- /dev/null +++ b/app/src/main/res/drawable/bg_sub_task_disable.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/app/src/main/res/drawable/bg_sub_task_normal.xml b/app/src/main/res/drawable/bg_sub_task_normal.xml new file mode 100644 index 0000000..3670d5c --- /dev/null +++ b/app/src/main/res/drawable/bg_sub_task_normal.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/app/src/main/res/layout/daily_task_item_view.xml b/app/src/main/res/layout/daily_task_item_view.xml index 70e07db..f0bc009 100644 --- a/app/src/main/res/layout/daily_task_item_view.xml +++ b/app/src/main/res/layout/daily_task_item_view.xml @@ -112,11 +112,11 @@ android:layout_alignParentRight="true" android:layout_marginLeft="9dp" android:gravity="center" - android:background="@drawable/vididinapp_feature_message_bg_task_fazer" + android:background="@drawable/bg_sub_task_normal" android:textSize="14sp" android:textStyle="bold" android:textColor="@color/white" - android:text="@string/resgatar" + android:text="@string/go_and_do" /> diff --git a/app/src/main/res/mipmap-xxhdpi/icon_ad.webp b/app/src/main/res/mipmap-xxhdpi/icon_ad.webp new file mode 100644 index 0000000000000000000000000000000000000000..3df9f494fdf3f27a32ebf0f797f32403f3667533 GIT binary patch literal 4412 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3d392f3..7abb536 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -27,6 +27,7 @@ R$ 0.0 Saque para Novatos Assistir a %d vídeo + Assistir a %d Anúncio Notificações push Ative as notificações e ganhe 200 moedas! Comunidade Discord