新手任务状态state类

This commit is contained in:
renhaoting 2025-12-04 14:17:07 +08:00
parent 9e2b880a32
commit 2b8b0fb38d
9 changed files with 109 additions and 9 deletions

View File

@ -17,6 +17,9 @@ object VididinEvents {
const val EVENT_DAILY_WATCHED_AD_NUM_CHANGED = 706
const val EVENT_BOX_TASK_STATE_CHANGED = 707
const val EVENT_NEWBIE_NOTIFY_TASK_CHANGED = 708
const val EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED = 709
const val EVENT_NEWBIE_DISCORD_TASK_CHANGED = 710

View File

@ -130,7 +130,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
beginnerTaskEnableNotify.setActionFun {
gotoNotification()
}
setRewardInfo(TaskManager.instance().getNewbieEnableNotifyTask()!!)
setTaskStateInfo(TaskManager.instance().newbieEnableNotifyStatus())
}
@ -259,10 +259,25 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}
},1000)
}
VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED -> {
}
VididinEvents.EVENT_NEWBIE_NOTIFY_TASK_CHANGED -> {
}
VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED -> {
}
}
}, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed,
VididinEvents.Event_Account_Gold_Changed, VididinEvents.EVENT_DAILY_WATCHED_VIDEO_NUM_CHANGED,
VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED, VididinEvents.EVENT_JUMP_2_FIRST_WITHDRAW)
VididinEvents.EVENT_DAILY_WATCHED_AD_NUM_CHANGED, VididinEvents.EVENT_JUMP_2_FIRST_WITHDRAW,
VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED, VididinEvents.EVENT_NEWBIE_NOTIFY_TASK_CHANGED,
VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED,)
}
private fun scroll2FirstWithdraw() {

View File

@ -10,6 +10,7 @@ import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.databinding.BeginnerTaskItemViewBinding
import com.gamedog.vididin.main.fragments.task.Task
import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.manager.helpers.NewbieEnableNotifyHelper
class BeginnerTaskItemView @JvmOverloads constructor(
@ -59,5 +60,9 @@ class BeginnerTaskItemView @JvmOverloads constructor(
mBinding.tvRewardNum.setTextColor(color)
}
fun setTaskStateInfo(newbieEnableNotifyStatus: NewbieEnableNotifyHelper) {
}
}

View File

@ -1,6 +1,10 @@
package com.gamedog.vididin.manager.helpers
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.main.fragments.task.Task
import com.gamedog.vididin.manager.taskbeans.TaskStateNewBieEnableNotify
@ -8,8 +12,31 @@ class NewbieEnableNotifyHelper: BaseTaskHelper<TaskStateNewBieEnableNotify, Task
override val mSpKey = SpUtil.KEY_NEWBIE_ENABLE_NOTIFY
override fun loadTaskFromSp() {
val taskStateBeanInSp = SpUtil.instance().getObject<TaskStateNewBieEnableNotify>(mSpKey)
if (taskStateBeanInSp == null) {
mStateBean = generateStateBeanFromConfig()
saveState2Sp()
} else {
mStateBean = taskStateBeanInSp
}
}
private fun generateStateBeanFromConfig(): TaskStateNewBieEnableNotify {
return TaskStateNewBieEnableNotify(mTaskConfig.reward_value)
}
fun claimReward() {
if (!mStateBean.hasClaimReward) {
AccountManager.addGold(mStateBean.rewardGoldNum)
saveState2Sp()
notifyStateChangeEvent()
}
}
private fun notifyStateChangeEvent() {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_NEWBIE_NOTIFY_TASK_CHANGED, null)
}
}

View File

@ -1,6 +1,9 @@
package com.gamedog.vididin.manager.helpers
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.main.fragments.task.Task
import com.gamedog.vididin.manager.taskbeans.TaskStateNewBieFirstWithDraw
@ -9,7 +12,29 @@ class NewbieFirstWithdrawHelper: BaseTaskHelper<TaskStateNewBieFirstWithDraw, Ta
override val mSpKey = SpUtil.KEY_NEWBIE_FIRST_WITHDRAW
override fun loadTaskFromSp() {
val taskStateBeanInSp = SpUtil.instance().getObject<TaskStateNewBieFirstWithDraw>(mSpKey)
if (taskStateBeanInSp == null) {
mStateBean = generateStateBeanFromConfig()
saveState2Sp()
} else {
mStateBean = taskStateBeanInSp
}
}
private fun generateStateBeanFromConfig(): TaskStateNewBieFirstWithDraw {
return TaskStateNewBieFirstWithDraw(mTaskConfig.reward_value)
}
fun claimReward() {
if (!mStateBean.hasClaimReward) {
AccountManager.addGold(mStateBean.rewardGoldNum)
saveState2Sp()
notifyStateChangeEvent()
}
}
private fun notifyStateChangeEvent() {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED, null)
}
}

View File

@ -1,6 +1,9 @@
package com.gamedog.vididin.manager.helpers
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.main.fragments.task.Task
import com.gamedog.vididin.manager.taskbeans.TaskStateNewBieJoinDiscord
@ -9,7 +12,29 @@ class NewbieJoinDiscordHelper: BaseTaskHelper<TaskStateNewBieJoinDiscord, Task>(
override val mSpKey = SpUtil.KEY_NEWBIE_JOIN_DISCORD
override fun loadTaskFromSp() {
val taskStateBeanInSp = SpUtil.instance().getObject<TaskStateNewBieJoinDiscord>(mSpKey)
if (taskStateBeanInSp == null) {
mStateBean = generateStateBeanFromConfig()
saveState2Sp()
} else {
mStateBean = taskStateBeanInSp
}
}
private fun generateStateBeanFromConfig(): TaskStateNewBieJoinDiscord {
return TaskStateNewBieJoinDiscord(mTaskConfig.reward_value)
}
fun claimReward() {
if (!mStateBean.hasClaimReward) {
AccountManager.addGold(mStateBean.rewardGoldNum)
saveState2Sp()
notifyStateChangeEvent()
}
}
private fun notifyStateChangeEvent() {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED, null)
}
}

View File

@ -6,8 +6,8 @@ import java.io.Serializable
data class TaskStateNewBieEnableNotify(
var box: Long = 0,
var watchedVideoNum: Int = 0,
var rewardGoldNum: Int,
var hasClaimReward: Boolean = false,
): Serializable {
}

View File

@ -6,8 +6,8 @@ import java.io.Serializable
data class TaskStateNewBieFirstWithDraw(
var box: Long = 0,
var watchedVideoNum: Int = 0,
var rewardGoldNum: Int,
var hasClaimReward: Boolean = false,
): Serializable {
}

View File

@ -6,8 +6,8 @@ import java.io.Serializable
data class TaskStateNewBieJoinDiscord(
var box: Long = 0,
var watchedVideoNum: Int = 0,
var rewardGoldNum: Int,
var hasClaimReward: Boolean = false,
): Serializable {
}