阶梯广告 UI 及时更新
This commit is contained in:
parent
62db69b1d4
commit
16efb504e3
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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<ViewBinding, UiState, ViewModel>(), OnTab
|
|||
override val mViewModel: ViewModel by viewModels()
|
||||
override var isBackgroundBright: Boolean = true
|
||||
|
||||
private val mDailyWatchVideoTaskViewList = mutableListOf<DailyTaskItemView>()
|
||||
private val mDailyWatchVideoAdViewList = mutableListOf<DailyTaskItemView>()
|
||||
private val mDailyWatchVideoViewList = mutableListOf<DailyTaskItemView>()
|
||||
private val mDailyWatchAdViewList = mutableListOf<DailyTaskItemView>()
|
||||
|
||||
|
||||
override fun inflateViewBinding(
|
||||
|
|
@ -151,9 +154,9 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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<ViewBinding, UiState, ViewModel>(), 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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<TaskStateWatchAd>() {
|
|||
}
|
||||
|
||||
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<TaskStateWatchAd>() {
|
|||
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) {
|
||||
|
|
|
|||
|
|
@ -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<DailyStateWatchVideoBean>() {
|
|||
}
|
||||
|
||||
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<DailyStateWatchVideoBean>() {
|
|||
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) {
|
||||
|
|
|
|||
|
|
@ -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<RewardDetail>) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue