阶梯广告 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_Video = 701
|
||||||
const val Event_Finish_One_Ad = 702
|
const val Event_Finish_One_Ad = 702
|
||||||
|
|
||||||
const val Event_Toady_Watched_Video_Total = 703
|
const val EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED = 703
|
||||||
const val Event_Toady_Watched_Ad_Total = 704
|
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.core.login.login.AccountManager
|
||||||
import com.gamedog.vididin.main.WatchAdDialog
|
import com.gamedog.vididin.main.WatchAdDialog
|
||||||
import com.gamedog.vididin.main.fragments.task.DailySignDialog
|
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.TaskBean
|
||||||
import com.gamedog.vididin.main.fragments.task.widget.DailyTaskItemView
|
import com.gamedog.vididin.main.fragments.task.widget.DailyTaskItemView
|
||||||
import com.gamedog.vididin.main.interfaces.OnTabClickAgainListener
|
import com.gamedog.vididin.main.interfaces.OnTabClickAgainListener
|
||||||
import com.gamedog.vididin.manager.TaskManager
|
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 com.gamedog.vididin.router.Router
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
@ -46,8 +49,8 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
|
||||||
override val mViewModel: ViewModel by viewModels()
|
override val mViewModel: ViewModel by viewModels()
|
||||||
override var isBackgroundBright: Boolean = true
|
override var isBackgroundBright: Boolean = true
|
||||||
|
|
||||||
private val mDailyWatchVideoTaskViewList = mutableListOf<DailyTaskItemView>()
|
private val mDailyWatchVideoViewList = mutableListOf<DailyTaskItemView>()
|
||||||
private val mDailyWatchVideoAdViewList = mutableListOf<DailyTaskItemView>()
|
private val mDailyWatchAdViewList = mutableListOf<DailyTaskItemView>()
|
||||||
|
|
||||||
|
|
||||||
override fun inflateViewBinding(
|
override fun inflateViewBinding(
|
||||||
|
|
@ -151,9 +154,9 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
|
||||||
dailyWatchAdTask.reward_details.forEachIndexed { index, detail ->
|
dailyWatchAdTask.reward_details.forEachIndexed { index, detail ->
|
||||||
val watchTaskItemView = DailyTaskItemView(requireActivity())
|
val watchTaskItemView = DailyTaskItemView(requireActivity())
|
||||||
watchTaskItemView.setActionFun {
|
watchTaskItemView.setActionFun {
|
||||||
gotoDailyWatchAd()
|
handleDailyAdButClicked(index)
|
||||||
}
|
}
|
||||||
mDailyWatchVideoAdViewList.add(watchTaskItemView)
|
mDailyWatchAdViewList.add(watchTaskItemView)
|
||||||
|
|
||||||
binding?.dailyTasksContainer!!.run {
|
binding?.dailyTasksContainer!!.run {
|
||||||
watchTaskItemView.initUI(R.mipmap.icon_ad, R.string.daily_ad_task_title,
|
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 ->
|
dailyWatchVideoTask.reward_details.forEachIndexed {index, detail ->
|
||||||
val watchTaskItemView = DailyTaskItemView(requireActivity())
|
val watchTaskItemView = DailyTaskItemView(requireActivity())
|
||||||
watchTaskItemView.setActionFun {
|
watchTaskItemView.setActionFun {
|
||||||
gotoWatchVideo()
|
handleDailyVideoButClicked(index)
|
||||||
}
|
}
|
||||||
mDailyWatchVideoTaskViewList.add(watchTaskItemView)
|
mDailyWatchVideoViewList.add(watchTaskItemView)
|
||||||
|
|
||||||
binding?.dailyTasksContainer!!.run {
|
binding?.dailyTasksContainer!!.run {
|
||||||
watchTaskItemView.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title,
|
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() {
|
private fun updateDailyWatchVideoUI() {
|
||||||
val statusBean = TaskManager.instance().dailyWatchVideoStatus().getStatusBean()
|
val statusBean = TaskManager.instance().dailyWatchVideoStatus().getStatusBean()
|
||||||
val subTaskStatusList = statusBean.getSubTaskRewardState()
|
val subTaskStatusList = statusBean.getSubTaskRewardState()
|
||||||
mDailyWatchVideoTaskViewList.forEachIndexed { index, view ->
|
mDailyWatchVideoViewList.forEachIndexed { index, view ->
|
||||||
view.updateProgress(statusBean.getTodayWatchedCount(), subTaskStatusList[index].state)
|
view.updateProgress(statusBean.getTodayWatchedCount(), subTaskStatusList[index].state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -215,7 +218,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
|
||||||
private fun updateDailyWatchAdUI() {
|
private fun updateDailyWatchAdUI() {
|
||||||
val statusBean = TaskManager.instance().dailyWatchAdStatus().getStatusBean()
|
val statusBean = TaskManager.instance().dailyWatchAdStatus().getStatusBean()
|
||||||
val subTaskStatusList = statusBean.getSubTaskRewardState()
|
val subTaskStatusList = statusBean.getSubTaskRewardState()
|
||||||
mDailyWatchVideoAdViewList.forEachIndexed { index, view ->
|
mDailyWatchAdViewList.forEachIndexed { index, view ->
|
||||||
view.updateProgress(statusBean.getTodayWatchedAdCount(), subTaskStatusList[index].state)
|
view.updateProgress(statusBean.getTodayWatchedAdCount(), subTaskStatusList[index].state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -239,17 +242,17 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
|
||||||
updateUICashTotal()
|
updateUICashTotal()
|
||||||
}
|
}
|
||||||
|
|
||||||
VididinEvents.Event_Toady_Watched_Video_Total -> {
|
VididinEvents.EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED -> {
|
||||||
updateDailyWatchVideoUI()
|
updateDailyWatchVideoUI()
|
||||||
}
|
}
|
||||||
|
|
||||||
VididinEvents.Event_Toady_Watched_Ad_Total -> {
|
VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED -> {
|
||||||
updateDailyWatchAdUI()
|
updateDailyWatchAdUI()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed,
|
}, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed,
|
||||||
VididinEvents.Event_Account_Gold_Changed, VididinEvents.Event_Toady_Watched_Video_Total,
|
VididinEvents.Event_Account_Gold_Changed, VididinEvents.EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED,
|
||||||
VididinEvents.Event_Toady_Watched_Ad_Total)
|
VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateDailySignButUI() {
|
private fun updateDailySignButUI() {
|
||||||
|
|
@ -308,12 +311,38 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun gotoWatchVideo() {
|
private fun handleDailyVideoButClicked(itemIndex: Int) {
|
||||||
Router.Mine.createMineFragment()
|
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() {
|
private fun handleDailyAdButClicked(itemIndex: Int) {
|
||||||
WatchAdDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_Daily, null).show()
|
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 -> {
|
STATE_CLAIMED -> {
|
||||||
setText(R.string.Resgatado)
|
setText(R.string.Resgatado)
|
||||||
setBackgroundResource(R.drawable.bg_sub_task_normal)
|
setBackgroundResource(R.drawable.bg_sub_task_disable)
|
||||||
isClickable = false
|
isClickable = false
|
||||||
alpha = 0.4F
|
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.DateUtil
|
||||||
import com.ama.core.architecture.util.SpUtil
|
import com.ama.core.architecture.util.SpUtil
|
||||||
import com.ama.core.architecture.util.eventbus.NotifyMan
|
import com.ama.core.architecture.util.eventbus.NotifyMan
|
||||||
import com.gamedog.vididin.R
|
|
||||||
import com.gamedog.vididin.VididinEvents
|
import com.gamedog.vididin.VididinEvents
|
||||||
import com.gamedog.vididin.core.login.login.AccountManager
|
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_CLAIMED
|
||||||
|
|
@ -36,7 +35,7 @@ class DailyWatchAdTaskHelper : BaseTaskHelper<TaskStateWatchAd>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun notifyEvents() {
|
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]
|
val subTask = mStateBean.getSubTaskRewardState()[subTaskIndex]
|
||||||
if (subTask.state == STATE_FINISH) {
|
if (subTask.state == STATE_FINISH) {
|
||||||
AccountManager.addGold(subTask.mRewardNum)
|
AccountManager.addGold(subTask.mRewardNum)
|
||||||
|
subTask.state = STATE_CLAIMED
|
||||||
|
saveState2Sp()
|
||||||
|
notifyEvents()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.ama.core.architecture.util.SpUtil
|
||||||
import com.ama.core.architecture.util.eventbus.NotifyMan
|
import com.ama.core.architecture.util.eventbus.NotifyMan
|
||||||
import com.gamedog.vididin.VididinEvents
|
import com.gamedog.vididin.VididinEvents
|
||||||
import com.gamedog.vididin.core.login.login.AccountManager
|
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_FINISH
|
||||||
import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING
|
import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING
|
||||||
import com.gamedog.vididin.manager.taskbeans.DailyStateWatchVideoBean
|
import com.gamedog.vididin.manager.taskbeans.DailyStateWatchVideoBean
|
||||||
|
|
@ -34,7 +35,7 @@ class DailyWatchVideoTaskHelper : BaseTaskHelper<DailyStateWatchVideoBean>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun notifyEvents() {
|
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]
|
val subTask = mStateBean.getSubTaskRewardState()[subTaskIndex]
|
||||||
if (subTask.state == STATE_FINISH) {
|
if (subTask.state == STATE_FINISH) {
|
||||||
AccountManager.addGold(subTask.mRewardNum)
|
AccountManager.addGold(subTask.mRewardNum)
|
||||||
|
subTask.state = STATE_CLAIMED
|
||||||
|
saveState2Sp()
|
||||||
|
notifyEvents()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ data class TaskStateWatchAd(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isAllTaskFinish(): Boolean {
|
fun isAllTaskFinish(): Boolean {
|
||||||
return mSubTaskRewardState.all { it.state > STATE_ONGOING }
|
return mSubTaskRewardState.all { it.state >= STATE_CLAIMED }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun initSubTaskRewardList(subTasks: List<RewardDetail>) {
|
fun initSubTaskRewardList(subTasks: List<RewardDetail>) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue