新建其他bean 和 statusHelper

This commit is contained in:
renhaoting 2025-12-01 15:11:53 +08:00
parent 738b0b3ae9
commit 6ea2af01fe
15 changed files with 166 additions and 61 deletions

View File

@ -188,7 +188,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
private fun updateDailySignButUI() { private fun updateDailySignButUI() {
val hasFinishAllSignWork = TaskManager.instance().dailySignTask().isDailySignAllOperationDone() val hasFinishAllSignWork = TaskManager.instance().dailySignStatus().isDailySignAllOperationDone()
binding?.ivGotoDailySign?.apply { binding?.ivGotoDailySign?.apply {
setText( setText(

View File

@ -1,7 +1,6 @@
package com.gamedog.vididin.main.fragments.task package com.gamedog.vididin.main.fragments.task
import android.app.Activity import android.app.Activity
import android.content.Context
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.widget.BindingDialog import com.ama.core.architecture.widget.BindingDialog
@ -57,7 +56,7 @@ class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>
} }
private fun clickedNormalSign() { private fun clickedNormalSign() {
if (TaskManager.instance().dailySignTask().executeDailySign(mCurDayIndex, false, false)) { if (TaskManager.instance().dailySignStatus().executeDailySign(mCurDayIndex, false, false)) {
DailySignSuccessDialog(mActivity).initData(mConfigList?.get(mCurDayIndex)?.value, true).show() DailySignSuccessDialog(mActivity).initData(mConfigList?.get(mCurDayIndex)?.value, true).show()
updateUI(mCurDayIndex) updateUI(mCurDayIndex)
} }
@ -65,7 +64,7 @@ class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>
private fun clickedAdSingleBut() { private fun clickedAdSingleBut() {
startAdTask("signalAd", { startAdTask("signalAd", {
if (TaskManager.instance().dailySignTask().executeDailySign(mCurDayIndex, false, true)) { if (TaskManager.instance().dailySignStatus().executeDailySign(mCurDayIndex, false, true)) {
DailySignSuccessDialog(mActivity).initData(mConfigList?.get(mCurDayIndex)?.value, false).show() DailySignSuccessDialog(mActivity).initData(mConfigList?.get(mCurDayIndex)?.value, false).show()
updateUI(mCurDayIndex) updateUI(mCurDayIndex)
} }
@ -74,7 +73,7 @@ class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>
private fun clickedAdDoubleBut() { private fun clickedAdDoubleBut() {
startAdTask("doubleAd", { startAdTask("doubleAd", {
if (TaskManager.instance().dailySignTask().executeDailySign(mCurDayIndex, true, true)) { if (TaskManager.instance().dailySignStatus().executeDailySign(mCurDayIndex, true, true)) {
DailySignSuccessDialog(mActivity).initData((mConfigList?.get(mCurDayIndex)?.value)?.times( DailySignSuccessDialog(mActivity).initData((mConfigList?.get(mCurDayIndex)?.value)?.times(
2 2
), false).show() ), false).show()
@ -84,10 +83,10 @@ class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>
} }
private fun clickedComplementSign() { private fun clickedComplementSign() {
val firstForgotSignDayIndex = TaskManager.instance().dailySignTask().getForgotSignFirstDayIndex() val firstForgotSignDayIndex = TaskManager.instance().dailySignStatus().getForgotSignFirstDayIndex()
if (firstForgotSignDayIndex > 0) { if (firstForgotSignDayIndex > 0) {
startAdTask("complementAd", { startAdTask("complementAd", {
if (TaskManager.instance().dailySignTask().executeDailySign(firstForgotSignDayIndex, false, false)){ if (TaskManager.instance().dailySignStatus().executeDailySign(firstForgotSignDayIndex, false, false)){
DailySignSuccessDialog(mActivity).initData(mConfigList?.get(firstForgotSignDayIndex)?.value, false).show() DailySignSuccessDialog(mActivity).initData(mConfigList?.get(firstForgotSignDayIndex)?.value, false).show()
updateUI(firstForgotSignDayIndex) updateUI(firstForgotSignDayIndex)
} }
@ -121,14 +120,14 @@ class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>
mConfigList?.let { mConfigList?.let {
mSignItemViewList.forEachIndexed { index, itemView-> mSignItemViewList.forEachIndexed { index, itemView->
itemView.setData(mConfigList!![index], itemView.setData(mConfigList!![index],
TaskManager.instance().dailySignTask().getDailySignStateBean(index)) TaskManager.instance().dailySignStatus().getDailySignStateBean(index))
} }
} }
} }
} }
private fun initSignState() { private fun initSignState() {
mCurDayIndex = TaskManager.instance().dailySignTask().getCurDayIndexOfDailyCheckIn() mCurDayIndex = TaskManager.instance().dailySignStatus().getCurDayIndexOfDailyCheckIn()
mSignItemViewList[mCurDayIndex].setSelectState(true) mSignItemViewList[mCurDayIndex].setSelectState(true)
updateUI(mCurDayIndex) updateUI(mCurDayIndex)
} }
@ -141,7 +140,7 @@ class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>
mBinding.tvSignedTotal.text = buildString { mBinding.tvSignedTotal.text = buildString {
append(TaskManager.instance().dailySignTask().getSignDaysTotal()) append(TaskManager.instance().dailySignStatus().getSignDaysTotal())
append("/7") append("/7")
} }
mSignItemViewList[signedDayIndex].updateUI() mSignItemViewList[signedDayIndex].updateUI()
@ -163,7 +162,7 @@ class DailySignDialog(context: Activity) : BindingDialog<DialogDailySignBinding>
mConfigList?.get(mCurDayIndex)?.value mConfigList?.get(mCurDayIndex)?.value
} }
} else { } else {
val forgotSignDays = TaskManager.instance().dailySignTask().getForgotSignDays() val forgotSignDays = TaskManager.instance().dailySignStatus().getForgotSignDays()
if (forgotSignDays > 0) { if (forgotSignDays > 0) {
mBinding.actionNormalTwoButs.isVisible = false mBinding.actionNormalTwoButs.isVisible = false
mBinding.actionWatchAd.isVisible = false mBinding.actionWatchAd.isVisible = false

View File

@ -114,7 +114,7 @@ class WeekStatusView @JvmOverloads constructor(
override fun onDraw(canvas: Canvas) { override fun onDraw(canvas: Canvas) {
super.onDraw(canvas) super.onDraw(canvas)
val dayStateList = TaskManager.instance().dailySignTask().getDayStateList() val dayStateList = TaskManager.instance().dailySignStatus().getDayStateList()
if (dayStateList.isEmpty()) return if (dayStateList.isEmpty()) return
val totalWidth = measuredWidth.toFloat() val totalWidth = measuredWidth.toFloat()
@ -140,7 +140,7 @@ class WeekStatusView @JvmOverloads constructor(
// reward text // reward text
textPaint.textSize = rewardTextSize textPaint.textSize = rewardTextSize
val rewardNum = TaskManager.instance().dailySignTask().getRewardNumOfDailySign(index) val rewardNum = TaskManager.instance().dailySignStatus().getRewardNumOfDailySign(index)
textPaint.color = if (dayStatus.hasSigned) rewardTextSignedColor else rewardTextColor textPaint.color = if (dayStatus.hasSigned) rewardTextSignedColor else rewardTextColor
canvas.drawText(rewardNum.toString(), centerX, vertiMagin + dayTextSize + componentGap + 2*circleRadius + componentGap, textPaint) canvas.drawText(rewardNum.toString(), centerX, vertiMagin + dayTextSize + componentGap + 2*circleRadius + componentGap, textPaint)
} }

View File

@ -3,8 +3,12 @@ package com.gamedog.vididin.manager
import com.ama.core.architecture.util.FileUtil import com.ama.core.architecture.util.FileUtil
import com.gamedog.vididin.main.fragments.task.Task import com.gamedog.vididin.main.fragments.task.Task
import com.gamedog.vididin.main.fragments.task.TaskBean import com.gamedog.vididin.main.fragments.task.TaskBean
import com.gamedog.vididin.manager.helpers.DailyBoxHelper
import com.gamedog.vididin.manager.helpers.DailySignTaskHelper import com.gamedog.vididin.manager.helpers.DailySignTaskHelper
import com.gamedog.vididin.manager.helpers.DailyWatchVideoTaskHelper import com.gamedog.vididin.manager.helpers.DailyWatchVideoTaskHelper
import com.gamedog.vididin.manager.helpers.NewbieEnableNotifyHelper
import com.gamedog.vididin.manager.helpers.NewbieFirstWithdrawHelper
import com.gamedog.vididin.manager.helpers.NewbieJoinDiscordHelper
import com.google.gson.GsonBuilder import com.google.gson.GsonBuilder
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock
@ -25,9 +29,6 @@ class TaskManager private constructor() {
private const val TAG_TASK_DAILY_VIDEO = "daily_video_ladder" private const val TAG_TASK_DAILY_VIDEO = "daily_video_ladder"
private const val TAG_TASK_DAILY_AD = "daily_ad_ladder" private const val TAG_TASK_DAILY_AD = "daily_ad_ladder"
@Volatile @Volatile
private var instance: TaskManager? = null private var instance: TaskManager? = null
@ -43,24 +44,24 @@ class TaskManager private constructor() {
private val mDailySignTaskHelper by lazy { DailySignTaskHelper() }
private val mDailyWatchVideoTaskHelper by lazy { DailyWatchVideoTaskHelper() }
private val mutex = Mutex()
@Volatile @Volatile
private var initialized = false private var initialized = false
private var mTaskConfig: TaskBean? = null private val mutex = Mutex()
private val mGson = GsonBuilder().create() private val mGson = GsonBuilder().create()
private var mTaskConfig: TaskBean? = null
private val mDailySignTaskHelper by lazy { DailySignTaskHelper() }
private val mDailyWatchVideoTaskHelper by lazy { DailyWatchVideoTaskHelper() }
private val mDailyBoxHelper by lazy { DailyBoxHelper() }
private val mNewbieJoinDiscordHelper by lazy { NewbieJoinDiscordHelper() }
private val mNewbieEnableNotifyHelper by lazy { NewbieEnableNotifyHelper() }
private val mNewbieFirstWithdrawHelper by lazy { NewbieFirstWithdrawHelper() }
init { init {
loadTaskConfigAsync() loadTaskConfigAsync()
// TODO - remove test code // TODO - remove test code
if (true) { if (true) {
mDailySignTaskHelper.generateTestDailySignTestBean() mDailySignTaskHelper.generateTestDailySignTestBean()
@ -94,29 +95,42 @@ class TaskManager private constructor() {
} }
} }
private suspend fun initHelpers() { private suspend fun initHelpers() {
mDailySignTaskHelper.initDatas(getDailyCheckInTask()!!) mDailySignTaskHelper.initDatas(getDailyCheckInTask()!!)
mDailyWatchVideoTaskHelper.initDatas(getDailyVideoTask()!!) mDailyWatchVideoTaskHelper.initDatas(getDailyVideoTask()!!)
mDailyBoxHelper.initDatas(getDailyVideoTask()!!) // TODO - get right box task config
mNewbieJoinDiscordHelper.initDatas(getNewbieJoinDiscordTask()!!)
mNewbieEnableNotifyHelper.initDatas(getNewbieEnableNotifyTask()!!)
mNewbieFirstWithdrawHelper.initDatas(getNewbieFirstWithdrawTask()!!)
} }
//------------------------- Tasks Getter ------------------------------
fun dailySignStatus(): DailySignTaskHelper {
fun dailySignTask(): DailySignTaskHelper {
return mDailySignTaskHelper return mDailySignTaskHelper
} }
fun dailyWatchTask(): DailyWatchVideoTaskHelper { fun dailyWatchStatus(): DailyWatchVideoTaskHelper {
return mDailyWatchVideoTaskHelper return mDailyWatchVideoTaskHelper
} }
fun dailyBoxStatus(): DailyBoxHelper {
return mDailyBoxHelper
}
fun newbieJoinDiscordStatus(): NewbieJoinDiscordHelper {
return mNewbieJoinDiscordHelper
}
fun newbieEnableNotifyStatus(): NewbieEnableNotifyHelper {
return mNewbieEnableNotifyHelper
}
fun newbieFirstWithdrawStatus(): NewbieFirstWithdrawHelper {
return mNewbieFirstWithdrawHelper
}
//------------------------- Get tasks ------------------------------- //------------------------- Get tasks -------------------------------
@ -153,6 +167,7 @@ class TaskManager private constructor() {
//----------------------------- 每日签到 -----------------------------// //----------------------------- 每日签到 -----------------------------//
fun getHomeWatchDurationRewardNum(): Int { fun getHomeWatchDurationRewardNum(): Int {
@ -162,28 +177,7 @@ class TaskManager private constructor() {
} }
private class ConfigHelper {
}
private class DailyBoxTaskHelper {
}
private class NewBieWithdrawTaskHelper {
}
private class NewBieEnableNotifyTaskHelper {
}
private class NewBieJoinDiscordTaskHelper {
}

View File

@ -5,7 +5,7 @@ import com.gamedog.vididin.main.fragments.task.Task
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
abstract class BaseHelper { abstract class BaseTaskHelper {
protected lateinit var mTaskConfig: Task protected lateinit var mTaskConfig: Task
private var mEventCallback: NotifyMan.ICallback? = null private var mEventCallback: NotifyMan.ICallback? = null

View File

@ -0,0 +1,11 @@
package com.gamedog.vididin.manager.helpers
class DailyBoxHelper: BaseTaskHelper() {
override fun loadTaskFromSp() {
}
}

View File

@ -9,7 +9,7 @@ import com.gamedog.vididin.manager.taskbeans.TaskDailySignBean
import com.gamedog.vididin.manager.taskbeans.DailySignDayInfoBean import com.gamedog.vididin.manager.taskbeans.DailySignDayInfoBean
class DailySignTaskHelper : BaseHelper() { class DailySignTaskHelper : BaseTaskHelper() {
private var mCurDayIndexDailySign: Int = 0 private var mCurDayIndexDailySign: Int = 0
private var mDailySignData: TaskDailySignBean = TaskDailySignBean() private var mDailySignData: TaskDailySignBean = TaskDailySignBean()

View File

@ -8,7 +8,7 @@ import java.util.concurrent.ConcurrentHashMap
class DailyWatchVideoTaskHelper : BaseHelper() { class DailyWatchVideoTaskHelper : BaseTaskHelper() {
private var mStateBean: DailyStateWatchVideoBean? = null private var mStateBean: DailyStateWatchVideoBean? = null
private val mWatchedMap = ConcurrentHashMap<String, Long>() private val mWatchedMap = ConcurrentHashMap<String, Long>()

View File

@ -0,0 +1,11 @@
package com.gamedog.vididin.manager.helpers
class NewbieEnableNotifyHelper: BaseTaskHelper() {
override fun loadTaskFromSp() {
}
}

View File

@ -0,0 +1,11 @@
package com.gamedog.vididin.manager.helpers
class NewbieFirstWithdrawHelper: BaseTaskHelper() {
override fun loadTaskFromSp() {
}
}

View File

@ -0,0 +1,11 @@
package com.gamedog.vididin.manager.helpers
class NewbieJoinDiscordHelper: BaseTaskHelper() {
override fun loadTaskFromSp() {
}
}

View File

@ -0,0 +1,17 @@
package com.gamedog.vididin.manager.taskbeans
import java.io.Serializable
data class TaskStateBox(
var box: Long = 0,
var watchedVideoNum: Int = 0,
): Serializable {
}

View File

@ -0,0 +1,17 @@
package com.gamedog.vididin.manager.taskbeans
import java.io.Serializable
data class TaskStateNewBieEnableNotify(
var box: Long = 0,
var watchedVideoNum: Int = 0,
): Serializable {
}

View File

@ -0,0 +1,17 @@
package com.gamedog.vididin.manager.taskbeans
import java.io.Serializable
data class TaskStateNewBieFirstWithDraw(
var box: Long = 0,
var watchedVideoNum: Int = 0,
): Serializable {
}

View File

@ -0,0 +1,17 @@
package com.gamedog.vididin.manager.taskbeans
import java.io.Serializable
data class TaskStateNewBieJoinDiscord(
var box: Long = 0,
var watchedVideoNum: Int = 0,
): Serializable {
}