diff --git a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt index e91a370..1062cb5 100644 --- a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt +++ b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt @@ -11,8 +11,8 @@ object VididinEvents { const val Event_Finish_One_Video = 701 const val Event_Finish_One_Ad = 702 - const val Event_Toady_Watched_Video_Total = 703 - const val Event_Toady_Watched_Ad_Total = 704 + const val EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED = 703 + const val EVENT_DAILY_WATCHED_AD_NUM_CHANGED = 704 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 c1271e7..87b232f 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 @@ -24,10 +24,13 @@ import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.main.WatchAdDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog +import com.gamedog.vididin.main.fragments.task.DailySignSuccessDialog import com.gamedog.vididin.main.fragments.task.TaskBean import com.gamedog.vididin.main.fragments.task.widget.DailyTaskItemView import com.gamedog.vididin.main.interfaces.OnTabClickAgainListener import com.gamedog.vididin.manager.TaskManager +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_FINISH +import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING import com.gamedog.vididin.router.Router import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch @@ -46,8 +49,8 @@ class TasksFragment : AppViewsFragment(), OnTab override val mViewModel: ViewModel by viewModels() override var isBackgroundBright: Boolean = true - private val mDailyWatchVideoTaskViewList = mutableListOf() - private val mDailyWatchVideoAdViewList = mutableListOf() + private val mDailyWatchVideoViewList = mutableListOf() + private val mDailyWatchAdViewList = mutableListOf() override fun inflateViewBinding( @@ -151,9 +154,9 @@ class TasksFragment : AppViewsFragment(), OnTab dailyWatchAdTask.reward_details.forEachIndexed { index, detail -> val watchTaskItemView = DailyTaskItemView(requireActivity()) watchTaskItemView.setActionFun { - gotoDailyWatchAd() + handleDailyAdButClicked(index) } - mDailyWatchVideoAdViewList.add(watchTaskItemView) + mDailyWatchAdViewList.add(watchTaskItemView) binding?.dailyTasksContainer!!.run { watchTaskItemView.initUI(R.mipmap.icon_ad, R.string.daily_ad_task_title, @@ -177,9 +180,9 @@ class TasksFragment : AppViewsFragment(), OnTab dailyWatchVideoTask.reward_details.forEachIndexed {index, detail -> val watchTaskItemView = DailyTaskItemView(requireActivity()) watchTaskItemView.setActionFun { - gotoWatchVideo() + handleDailyVideoButClicked(index) } - mDailyWatchVideoTaskViewList.add(watchTaskItemView) + mDailyWatchVideoViewList.add(watchTaskItemView) binding?.dailyTasksContainer!!.run { watchTaskItemView.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, @@ -207,7 +210,7 @@ class TasksFragment : AppViewsFragment(), OnTab private fun updateDailyWatchVideoUI() { val statusBean = TaskManager.instance().dailyWatchVideoStatus().getStatusBean() val subTaskStatusList = statusBean.getSubTaskRewardState() - mDailyWatchVideoTaskViewList.forEachIndexed { index, view -> + mDailyWatchVideoViewList.forEachIndexed { index, view -> view.updateProgress(statusBean.getTodayWatchedCount(), subTaskStatusList[index].state) } } @@ -215,7 +218,7 @@ class TasksFragment : AppViewsFragment(), OnTab private fun updateDailyWatchAdUI() { val statusBean = TaskManager.instance().dailyWatchAdStatus().getStatusBean() val subTaskStatusList = statusBean.getSubTaskRewardState() - mDailyWatchVideoAdViewList.forEachIndexed { index, view -> + mDailyWatchAdViewList.forEachIndexed { index, view -> view.updateProgress(statusBean.getTodayWatchedAdCount(), subTaskStatusList[index].state) } } @@ -239,17 +242,17 @@ class TasksFragment : AppViewsFragment(), OnTab updateUICashTotal() } - VididinEvents.Event_Toady_Watched_Video_Total -> { + VididinEvents.EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED -> { updateDailyWatchVideoUI() } - VididinEvents.Event_Toady_Watched_Ad_Total -> { + VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED -> { updateDailyWatchAdUI() } } }, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed, - VididinEvents.Event_Account_Gold_Changed, VididinEvents.Event_Toady_Watched_Video_Total, - VididinEvents.Event_Toady_Watched_Ad_Total) + VididinEvents.Event_Account_Gold_Changed, VididinEvents.EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED, + VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED) } private fun updateDailySignButUI() { @@ -308,12 +311,38 @@ class TasksFragment : AppViewsFragment(), OnTab }) } - private fun gotoWatchVideo() { - Router.Mine.createMineFragment() + private fun handleDailyVideoButClicked(itemIndex: Int) { + val subTaskList = TaskManager.instance().dailyWatchVideoStatus().getStatusBean().getSubTaskRewardState() + if (itemIndex >= 0 && itemIndex < subTaskList.size) { + val subTaskState = subTaskList[itemIndex] + when (subTaskState.state) { + STATE_ONGOING -> { + Router.Home.createHomeFragment() // TODO - jump not create + } + STATE_FINISH -> { + if (TaskManager.instance().dailyWatchVideoStatus().claimSubTaskReward(itemIndex)) { + DailySignSuccessDialog(requireActivity()).initData(subTaskState.mRewardNum, false).show() + } + } + } + } } - private fun gotoDailyWatchAd() { - WatchAdDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_Daily, null).show() + private fun handleDailyAdButClicked(itemIndex: Int) { + val subTaskList = TaskManager.instance().dailyWatchAdStatus().getStatusBean().getSubTaskRewardState() + if (itemIndex >= 0 && itemIndex < subTaskList.size) { + val subTaskState = subTaskList[itemIndex] + when (subTaskState.state) { + STATE_ONGOING -> { + WatchAdDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_Daily, null).show() + } + STATE_FINISH -> { + if (TaskManager.instance().dailyWatchAdStatus().claimSubTaskReward(itemIndex)) { + DailySignSuccessDialog(requireActivity()).initData(subTaskState.mRewardNum, false).show() + } + } + } + } } 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 50194af..4b8acff 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 @@ -70,7 +70,7 @@ class DailyTaskItemView @JvmOverloads constructor( STATE_CLAIMED -> { setText(R.string.Resgatado) - setBackgroundResource(R.drawable.bg_sub_task_normal) + setBackgroundResource(R.drawable.bg_sub_task_disable) isClickable = false alpha = 0.4F } 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 2b184dd..232b215 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 @@ -3,7 +3,6 @@ package com.gamedog.vididin.manager.helpers import com.ama.core.architecture.util.DateUtil 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 @@ -36,7 +35,7 @@ class DailyWatchAdTaskHelper : BaseTaskHelper() { } private fun notifyEvents() { - NotifyMan.instance().sendEvent(VididinEvents.Event_Toady_Watched_Ad_Total, null) + NotifyMan.instance().sendEvent(VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED, null) } @@ -86,6 +85,9 @@ class DailyWatchAdTaskHelper : BaseTaskHelper() { val subTask = mStateBean.getSubTaskRewardState()[subTaskIndex] if (subTask.state == STATE_FINISH) { AccountManager.addGold(subTask.mRewardNum) + subTask.state = STATE_CLAIMED + saveState2Sp() + notifyEvents() return true } } catch (e: Exception) { 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 402af34..2ef0251 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,7 @@ 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_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.DailyStateWatchVideoBean @@ -34,7 +35,7 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper() { } private fun notifyEvents() { - NotifyMan.instance().sendEvent(VididinEvents.Event_Toady_Watched_Video_Total, null) + NotifyMan.instance().sendEvent(VididinEvents.EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED, null) } @@ -82,6 +83,9 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper() { val subTask = mStateBean.getSubTaskRewardState()[subTaskIndex] if (subTask.state == STATE_FINISH) { AccountManager.addGold(subTask.mRewardNum) + subTask.state = STATE_CLAIMED + saveState2Sp() + notifyEvents() return true } } catch (e: Exception) { 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 d268925..785b470 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 @@ -21,7 +21,7 @@ data class TaskStateWatchAd( } fun isAllTaskFinish(): Boolean { - return mSubTaskRewardState.all { it.state > STATE_ONGOING } + return mSubTaskRewardState.all { it.state >= STATE_CLAIMED } } fun initSubTaskRewardList(subTasks: List) {