新建其他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() {
val hasFinishAllSignWork = TaskManager.instance().dailySignTask().isDailySignAllOperationDone()
val hasFinishAllSignWork = TaskManager.instance().dailySignStatus().isDailySignAllOperationDone()
binding?.ivGotoDailySign?.apply {
setText(

View File

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

View File

@ -114,7 +114,7 @@ class WeekStatusView @JvmOverloads constructor(
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val dayStateList = TaskManager.instance().dailySignTask().getDayStateList()
val dayStateList = TaskManager.instance().dailySignStatus().getDayStateList()
if (dayStateList.isEmpty()) return
val totalWidth = measuredWidth.toFloat()
@ -140,7 +140,7 @@ class WeekStatusView @JvmOverloads constructor(
// reward text
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
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.gamedog.vididin.main.fragments.task.Task
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.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 kotlinx.coroutines.sync.Mutex
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_AD = "daily_ad_ladder"
@Volatile
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
private var initialized = false
private var mTaskConfig: TaskBean? = null
private val mutex = Mutex()
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 {
loadTaskConfigAsync()
// TODO - remove test code
if (true) {
mDailySignTaskHelper.generateTestDailySignTestBean()
@ -94,29 +95,42 @@ class TaskManager private constructor() {
}
}
private suspend fun initHelpers() {
mDailySignTaskHelper.initDatas(getDailyCheckInTask()!!)
mDailyWatchVideoTaskHelper.initDatas(getDailyVideoTask()!!)
mDailyBoxHelper.initDatas(getDailyVideoTask()!!) // TODO - get right box task config
mNewbieJoinDiscordHelper.initDatas(getNewbieJoinDiscordTask()!!)
mNewbieEnableNotifyHelper.initDatas(getNewbieEnableNotifyTask()!!)
mNewbieFirstWithdrawHelper.initDatas(getNewbieFirstWithdrawTask()!!)
}
fun dailySignTask(): DailySignTaskHelper {
//------------------------- Tasks Getter ------------------------------
fun dailySignStatus(): DailySignTaskHelper {
return mDailySignTaskHelper
}
fun dailyWatchTask(): DailyWatchVideoTaskHelper {
fun dailyWatchStatus(): DailyWatchVideoTaskHelper {
return mDailyWatchVideoTaskHelper
}
fun dailyBoxStatus(): DailyBoxHelper {
return mDailyBoxHelper
}
fun newbieJoinDiscordStatus(): NewbieJoinDiscordHelper {
return mNewbieJoinDiscordHelper
}
fun newbieEnableNotifyStatus(): NewbieEnableNotifyHelper {
return mNewbieEnableNotifyHelper
}
fun newbieFirstWithdrawStatus(): NewbieFirstWithdrawHelper {
return mNewbieFirstWithdrawHelper
}
//------------------------- Get tasks -------------------------------
@ -153,6 +167,7 @@ class TaskManager private constructor() {
//----------------------------- 每日签到 -----------------------------//
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.withContext
abstract class BaseHelper {
abstract class BaseTaskHelper {
protected lateinit var mTaskConfig: Task
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
class DailySignTaskHelper : BaseHelper() {
class DailySignTaskHelper : BaseTaskHelper() {
private var mCurDayIndexDailySign: Int = 0
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 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 {
}