新手任务状态 事件接入 updateUI

This commit is contained in:
renhaoting 2025-12-04 14:56:33 +08:00
parent 294100b146
commit 81ab5823ec
6 changed files with 83 additions and 30 deletions

View File

@ -110,35 +110,18 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
with(beginnerTaskWithdraw) { with(beginnerTaskWithdraw) {
initUI(R.mipmap.icon_cash_s, R.string.beginner_withdraw_title, R.string.resgatar) initUI(R.mipmap.icon_cash_s, R.string.beginner_withdraw_title, R.string.resgatar)
//setRewardTextStyle(21, R.color.green_39) //setRewardTextStyle(21, R.color.green_39)
setActionFun { updateNewBieFirstWithdrawUI()
gotoWithDraw()
}
val stateBean = TaskManager.instance().newbieFirstWithdrawStatus().getStatusBean()
setTaskStateInfo(stateBean.rewardGoldNum.toString(),
if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do,
ResUtil.getString(R.string.beginner_withdraw_desc))
} }
with(beginnerTaskDiscord) { with(beginnerTaskDiscord) {
initUI(R.mipmap.icon_dicord, R.string.beginner_discord_title,R.string.resgatar) initUI(R.mipmap.icon_dicord, R.string.beginner_discord_title,R.string.resgatar)
setActionFun { updateNewBieDiscordUI()
gotoDiscord()
}
val stateBean = TaskManager.instance().newbieJoinDiscordStatus().getStatusBean()
setTaskStateInfo(stateBean.rewardGoldNum.toString(), if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do,
String.format(ResUtil.getString(R.string.beginner_discord_desc), stateBean.rewardGoldNum))
} }
with(beginnerTaskEnableNotify) { with(beginnerTaskEnableNotify) {
initUI(R.mipmap.icon_notify, R.string.beginner_notify_title,R.string.Resgatado) initUI(R.mipmap.icon_notify, R.string.beginner_notify_title,R.string.Resgatado)
beginnerTaskEnableNotify.setActionFun { updateNewBieNotifyUI()
gotoNotification()
}
val stateBean = TaskManager.instance().newbieEnableNotifyStatus().getStatusBean()
setTaskStateInfo(stateBean.rewardGoldNum.toString(), if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do,
String.format(ResUtil.getString(R.string.beginner_notify_desc), stateBean.rewardGoldNum))
} }
@ -269,15 +252,15 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED -> { VididinEvents.EVENT_NEWBIE_DISCORD_TASK_CHANGED -> {
updateNewBieDiscordUI()
} }
VididinEvents.EVENT_NEWBIE_NOTIFY_TASK_CHANGED -> { VididinEvents.EVENT_NEWBIE_NOTIFY_TASK_CHANGED -> {
updateNewBieNotifyUI()
} }
VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED -> { VididinEvents.EVENT_NEWBIE_FIRST_WITHDRAW_TASK_CHANGED -> {
updateNewBieFirstWithdrawUI()
} }
} }
@ -307,6 +290,58 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
} }
private fun updateNewBieFirstWithdrawUI() {
with(binding?.beginnerTaskWithdraw!!) {
setActionFun {
gotoWithDraw()
}
val stateBean = TaskManager.instance().newbieFirstWithdrawStatus().getStatusBean()
setTaskStateInfo(
stateBean.rewardGoldNum.toString(),
if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do,
ResUtil.getString(R.string.beginner_withdraw_desc),
stateBean.hasClaimReward
)
}
}
private fun updateNewBieDiscordUI() {
with(binding?.beginnerTaskDiscord!!) {
setActionFun {
gotoDiscord()
}
val stateBean = TaskManager.instance().newbieJoinDiscordStatus().getStatusBean()
setTaskStateInfo(
stateBean.rewardGoldNum.toString(),
if (stateBean.hasClaimReward) R.string.finished else R.string.go_and_do,
String.format(ResUtil.getString(R.string.beginner_discord_desc), stateBean.rewardGoldNum),
stateBean.hasClaimReward
)
}
}
private fun updateNewBieNotifyUI() {
with(binding?.beginnerTaskEnableNotify!!) {
val isNotifyEnable = AndroidUtil.isNotificationEnabled()
val stateBean = TaskManager.instance().newbieEnableNotifyStatus().getStatusBean()
setActionFun {
if (!isNotifyEnable) {
gotoNotification()
} else {
if (TaskManager.instance().newbieEnableNotifyStatus().claimReward()) {
DailySignSuccessDialog(requireActivity()).initData(stateBean.rewardGoldNum, false).show()
}
}
}
val actionButRes = if (stateBean.hasClaimReward) R.string.finished else (if (isNotifyEnable) R.string.resgatar else R.string.go_and_do)
setTaskStateInfo(stateBean.rewardGoldNum.toString(), actionButRes,
String.format(ResUtil.getString(R.string.beginner_notify_desc), stateBean.rewardGoldNum), stateBean.hasClaimReward)
}
}
override fun ViewBinding.initObservers() { override fun ViewBinding.initObservers() {
} }
@ -348,6 +383,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}) })
} }
private fun handleDailyVideoButClicked(itemIndex: Int) { private fun handleDailyVideoButClicked(itemIndex: Int) {
val subTaskList = TaskManager.instance().dailyWatchVideoStatus().getStatusBean().getSubTaskRewardState() val subTaskList = TaskManager.instance().dailyWatchVideoStatus().getStatusBean().getSubTaskRewardState()
if (itemIndex >= 0 && itemIndex < subTaskList.size) { if (itemIndex >= 0 && itemIndex < subTaskList.size) {

View File

@ -4,14 +4,11 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater import android.view.LayoutInflater
import android.widget.LinearLayout import android.widget.LinearLayout
import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setOnClickBatch
import com.gamedog.vididin.R import com.gamedog.vididin.R
import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.databinding.BeginnerTaskItemViewBinding import com.gamedog.vididin.databinding.BeginnerTaskItemViewBinding
import com.gamedog.vididin.main.fragments.task.Task 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( class BeginnerTaskItemView @JvmOverloads constructor(
@ -60,10 +57,16 @@ class BeginnerTaskItemView @JvmOverloads constructor(
mBinding.tvRewardNum.setTextColor(color) mBinding.tvRewardNum.setTextColor(color)
} }
fun setTaskStateInfo(rewardNum: String, textRes: Int, describleStr: String) { fun setTaskStateInfo(
rewardNum: String,
textRes: Int,
describleStr: String,
hasClaimReward: Boolean
) {
mBinding.tvRewardNum.text = rewardNum mBinding.tvRewardNum.text = rewardNum
mBinding.tvAction.setText(textRes) mBinding.tvAction.setText(textRes)
mBinding.tvItemDescrible.text = describleStr mBinding.tvItemDescrible.text = describleStr
mBinding.tvAction.isClickable = !hasClaimReward
} }

View File

@ -27,12 +27,15 @@ class NewbieEnableNotifyHelper: BaseTaskHelper<TaskStateNewBieEnableNotify, Task
return TaskStateNewBieEnableNotify(mTaskConfig.reward_value) return TaskStateNewBieEnableNotify(mTaskConfig.reward_value)
} }
fun claimReward() { fun claimReward() : Boolean {
if (!mStateBean.hasClaimReward) { if (!mStateBean.hasClaimReward) {
AccountManager.addGold(mStateBean.rewardGoldNum) AccountManager.addGold(mStateBean.rewardGoldNum)
mStateBean.hasClaimReward = true
saveState2Sp() saveState2Sp()
notifyStateChangeEvent() notifyStateChangeEvent()
return true
} }
return false
} }
private fun notifyStateChangeEvent() { private fun notifyStateChangeEvent() {

View File

@ -25,12 +25,15 @@ class NewbieFirstWithdrawHelper: BaseTaskHelper<TaskStateNewBieFirstWithDraw, Ta
return TaskStateNewBieFirstWithDraw(mTaskConfig.reward_value) return TaskStateNewBieFirstWithDraw(mTaskConfig.reward_value)
} }
fun claimReward() { fun claimReward(): Boolean {
if (!mStateBean.hasClaimReward) { if (!mStateBean.hasClaimReward) {
AccountManager.addGold(mStateBean.rewardGoldNum) AccountManager.addGold(mStateBean.rewardGoldNum)
mStateBean.hasClaimReward = true
saveState2Sp() saveState2Sp()
notifyStateChangeEvent() notifyStateChangeEvent()
return true
} }
return false
} }
private fun notifyStateChangeEvent() { private fun notifyStateChangeEvent() {

View File

@ -25,12 +25,15 @@ class NewbieJoinDiscordHelper: BaseTaskHelper<TaskStateNewBieJoinDiscord, Task>(
return TaskStateNewBieJoinDiscord(mTaskConfig.reward_value) return TaskStateNewBieJoinDiscord(mTaskConfig.reward_value)
} }
fun claimReward() { fun claimReward() : Boolean {
if (!mStateBean.hasClaimReward) { if (!mStateBean.hasClaimReward) {
AccountManager.addGold(mStateBean.rewardGoldNum) AccountManager.addGold(mStateBean.rewardGoldNum)
mStateBean.hasClaimReward = true
saveState2Sp() saveState2Sp()
notifyStateChangeEvent() notifyStateChangeEvent()
return true
} }
return false
} }
private fun notifyStateChangeEvent() { private fun notifyStateChangeEvent() {

View File

@ -9,6 +9,7 @@ import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.widget.Toast import android.widget.Toast
import androidx.core.app.NotificationManagerCompat
import com.ama.core.architecture.BaseApp import com.ama.core.architecture.BaseApp
import kotlin.random.Random import kotlin.random.Random
@ -65,6 +66,10 @@ class AndroidUtil private constructor() {
fun isNotificationEnabled(): Boolean {
return NotificationManagerCompat.from(BaseApp.appContext()).areNotificationsEnabled()
}
fun getAppVersionInfo(): String { fun getAppVersionInfo(): String {