From 6ea2af01fe1f160d49e3c04ba9e743bb39a9b081 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Mon, 1 Dec 2025 15:11:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E5=85=B6=E4=BB=96bean=20?= =?UTF-8?q?=E5=92=8C=20statusHelper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vididin/main/fragments/TasksFragment.kt | 2 +- .../main/fragments/task/DailySignDialog.kt | 19 ++--- .../main/fragments/task/WeekStatusView.kt | 4 +- .../gamedog/vididin/manager/TaskManager.kt | 84 +++++++++---------- .../{BaseHelper.kt => BaseTaskHelper.kt} | 2 +- .../vididin/manager/helpers/DailyBoxHelper.kt | 11 +++ .../manager/helpers/DailySignTaskHelper.kt | 2 +- .../helpers/DailyWatchVideoTaskHelper.kt | 2 +- .../helpers/NewbieEnableNotifyHelper.kt | 11 +++ .../helpers/NewbieFirstWithdrawHelper.kt | 11 +++ .../helpers/NewbieJoinDiscordHelper.kt | 11 +++ .../vididin/manager/taskbeans/TaskStateBox.kt | 17 ++++ .../taskbeans/TaskStateNewBieEnableNotify.kt | 17 ++++ .../taskbeans/TaskStateNewBieFirstWithDraw.kt | 17 ++++ .../taskbeans/TaskStateNewBieJoinDiscord.kt | 17 ++++ 15 files changed, 166 insertions(+), 61 deletions(-) rename app/src/main/java/com/gamedog/vididin/manager/helpers/{BaseHelper.kt => BaseTaskHelper.kt} (97%) create mode 100644 app/src/main/java/com/gamedog/vididin/manager/helpers/DailyBoxHelper.kt create mode 100644 app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt create mode 100644 app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieFirstWithdrawHelper.kt create mode 100644 app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieJoinDiscordHelper.kt create mode 100644 app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateBox.kt create mode 100644 app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieEnableNotify.kt create mode 100644 app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieFirstWithDraw.kt create mode 100644 app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieJoinDiscord.kt diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index 770638a..07cfd96 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -188,7 +188,7 @@ class TasksFragment : AppViewsFragment(), OnTab } private fun updateDailySignButUI() { - val hasFinishAllSignWork = TaskManager.instance().dailySignTask().isDailySignAllOperationDone() + val hasFinishAllSignWork = TaskManager.instance().dailySignStatus().isDailySignAllOperationDone() binding?.ivGotoDailySign?.apply { setText( diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt index 5c0f696..e5f82f3 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/DailySignDialog.kt @@ -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 } 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 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 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 } 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 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 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 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 diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/WeekStatusView.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/WeekStatusView.kt index 26b5d98..8e6a780 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/WeekStatusView.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/WeekStatusView.kt @@ -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) } diff --git a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt index 48ce4e1..0f9ad3f 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt @@ -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 { - -} diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseTaskHelper.kt similarity index 97% rename from app/src/main/java/com/gamedog/vididin/manager/helpers/BaseHelper.kt rename to app/src/main/java/com/gamedog/vididin/manager/helpers/BaseTaskHelper.kt index d34b3b4..9968f66 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/BaseTaskHelper.kt @@ -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 diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyBoxHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyBoxHelper.kt new file mode 100644 index 0000000..27e8c01 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyBoxHelper.kt @@ -0,0 +1,11 @@ +package com.gamedog.vididin.manager.helpers + +class DailyBoxHelper: BaseTaskHelper() { + + + + override fun loadTaskFromSp() { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt index 5c9767a..55be333 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailySignTaskHelper.kt @@ -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() diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt index ef7ceea..3c26af5 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/DailyWatchVideoTaskHelper.kt @@ -8,7 +8,7 @@ import java.util.concurrent.ConcurrentHashMap -class DailyWatchVideoTaskHelper : BaseHelper() { +class DailyWatchVideoTaskHelper : BaseTaskHelper() { private var mStateBean: DailyStateWatchVideoBean? = null private val mWatchedMap = ConcurrentHashMap() diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt new file mode 100644 index 0000000..102ce20 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieEnableNotifyHelper.kt @@ -0,0 +1,11 @@ +package com.gamedog.vididin.manager.helpers + +class NewbieEnableNotifyHelper: BaseTaskHelper() { + + + + override fun loadTaskFromSp() { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieFirstWithdrawHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieFirstWithdrawHelper.kt new file mode 100644 index 0000000..4bf137e --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieFirstWithdrawHelper.kt @@ -0,0 +1,11 @@ +package com.gamedog.vididin.manager.helpers + +class NewbieFirstWithdrawHelper: BaseTaskHelper() { + + + + override fun loadTaskFromSp() { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieJoinDiscordHelper.kt b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieJoinDiscordHelper.kt new file mode 100644 index 0000000..75f6a43 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/helpers/NewbieJoinDiscordHelper.kt @@ -0,0 +1,11 @@ +package com.gamedog.vididin.manager.helpers + +class NewbieJoinDiscordHelper: BaseTaskHelper() { + + + + override fun loadTaskFromSp() { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateBox.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateBox.kt new file mode 100644 index 0000000..5a791ab --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateBox.kt @@ -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 { + +} + + + + diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieEnableNotify.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieEnableNotify.kt new file mode 100644 index 0000000..93aa14f --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieEnableNotify.kt @@ -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 { + +} + + + + diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieFirstWithDraw.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieFirstWithDraw.kt new file mode 100644 index 0000000..d4e02fe --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieFirstWithDraw.kt @@ -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 { + +} + + + + diff --git a/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieJoinDiscord.kt b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieJoinDiscord.kt new file mode 100644 index 0000000..d04f187 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/taskbeans/TaskStateNewBieJoinDiscord.kt @@ -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 { + +} + + + +