box跳转 / 事件

This commit is contained in:
renhaoting 2025-12-04 11:02:00 +08:00
parent 929a95ed9c
commit 9189b845ef
5 changed files with 41 additions and 8 deletions

View File

@ -16,6 +16,8 @@ object VididinEvents {
const val EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED = 705
const val EVENT_DAILY_WATCHED_AD_NUM_CHANGED = 706
const val EVENT_BOX_TASK_STATE_CHANGED = 707
const val Event_AD_TASK_TYPE_Convert_Gold_2_Cash = 800
@ -30,6 +32,7 @@ object VididinEvents {
// UI jump related
const val EVENT_JUMP_2_FIRST_WITHDRAW = 900
const val EVENT_JUMP_2_SIGN = 901
const val EVENT_JUMP_2_VIDEO = 901
const val EVENT_JUMP_2_SIGN= 902
}

View File

@ -9,9 +9,11 @@ import android.widget.LinearLayout
import androidx.activity.viewModels
import com.ama.core.architecture.appBase.AppViewsActivity
import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.features.benefit.widget.BenefitTaskItemView
import com.gamedog.vididin.main.fragments.task.DailySignDialog
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.manager.TaskManager.Companion.BOX_SUB_TASK_TYPE_AD
@ -48,8 +50,16 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
initViewsByTaskState()
}
override fun ViewBinding.initListeners() {
override fun ViewBinding.initListeners() {
registerEvents({ data->
when (data?.mEventType) {
VididinEvents.EVENT_BOX_TASK_STATE_CHANGED -> {
updateUI()
}
}
}, VididinEvents.EVENT_BOX_TASK_STATE_CHANGED)
}
override fun ViewBinding.initObservers() {
@ -71,6 +81,11 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
updateTopBoxesUI()
}
private fun updateUI() {
updateSubTasksUI()
updateTopBoxesUI()
}
private fun initAddSubTaskViews() {
val taskStateHelper = TaskManager.instance().boxTaskStatus()
val currentBoxState = taskStateHelper.getStatusBean().tasks[taskStateHelper.getCurrentBoxIndex()]
@ -98,11 +113,12 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
}
BOX_SUB_TASK_TYPE_SIGN -> {
// TODO -
DailySignDialog(this@BenefitActivity).show()
}
BOX_SUB_TASK_TYPE_VIDEO -> {
finish()
NotifyMan.instance().sendEvent(VididinEvents.EVENT_JUMP_2_VIDEO, null)
}
BOX_SUB_TASK_TYPE_ZERO_BUY -> {
@ -110,7 +126,6 @@ class BenefitActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
}
}
finish()
}
private fun updateSubTasksUI() {

View File

@ -117,9 +117,13 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_Earn_Gold-> {
DailySignSuccessDialog(this@MainActivity).initData(VidiConst.WATCH_AD_REWARD_GOLD.toInt(), false).show()
}
VididinEvents.EVENT_JUMP_2_VIDEO-> {
switchTab(0)
}
}
}, VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_Earn_Gold)
}, VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_Earn_Gold, VididinEvents.EVENT_JUMP_2_VIDEO)
}
override fun ViewBinding.initObservers() {

View File

@ -34,6 +34,7 @@ import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_FINIS
import com.gamedog.vididin.manager.taskbeans.BaseTaskState.Companion.STATE_ONGOING
import com.gamedog.vididin.router.Router
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Runnable
import kotlinx.coroutines.launch
import kotlin.getValue
import com.gamedog.vididin.databinding.VididinappFeatureMessageFragmentMessageBinding as ViewBinding
@ -252,7 +253,11 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
VididinEvents.EVENT_JUMP_2_FIRST_WITHDRAW -> {
scroll2FirstWithdraw()
binding?.newbieContainer?.postDelayed(object : Runnable {
override fun run() {
scroll2FirstWithdraw()
}
},1000)
}
}
}, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed,

View File

@ -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.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.main.fragments.task.BoxTaskRoot
@ -82,12 +83,17 @@ class BoxTaskHelper: BaseTaskHelper<TaskStateBoxRoot, BoxTaskRoot>() {
&& !isBoxSubTaskFinished(currentBoxIndex, index)) {
subTask.finishedNum++
saveState2Sp()
// TODO - if need notify
notifyEvent()
}
}
}
}
private fun notifyEvent() {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_BOX_TASK_STATE_CHANGED, null)
}
private fun isBoxRootTaskExpired(taskStateBoxRoot: TaskStateBoxRoot): Boolean {
var totalDurationDays = 0