定义每日签到数据结构

This commit is contained in:
renhaoting 2025-11-26 11:52:09 +08:00
parent 993b2bf5e0
commit d92216bfdd
3 changed files with 70 additions and 19 deletions

View File

@ -16,7 +16,8 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
init {
build()
mDataList = TaskManager.instance().getDailyCheckInTask()?.reward_details
initDailySignItems()
initSignItemViews()
initSignState()
}
private fun build() {
@ -43,7 +44,7 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
}
private fun initDailySignItems() {
private fun initSignItemViews() {
with(mBinding) {
signItem7.setLargeWidthMode()
@ -65,6 +66,10 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
}
}
private fun initSignState() {
val todayIndex = TaskManager.instance().getCurDayIndexOfDailyCheckIn()
}
private fun handleItemSelectStateChanged(itemIndex: Int, selected: Boolean) {
mSignItemList.forEachIndexed { index, itemView ->
if (itemIndex != index) {

View File

@ -1,6 +1,7 @@
package com.gamedog.vididin.manager
import com.ama.core.architecture.util.FileUtil
import com.ama.core.architecture.util.SpUtil
import com.gamedog.vididin.main.fragments.task.Task
import com.gamedog.vididin.main.fragments.task.TaskBean
import com.google.gson.GsonBuilder
@ -10,19 +11,6 @@ import kotlinx.coroutines.*
class TaskManager private constructor() {
companion object {
@Volatile
private var instance: TaskManager? = null
fun instance(): TaskManager {
return instance ?: synchronized(this) {
instance ?: TaskManager().also {
instance = it
}
}
}
// 新手任务分类及其子类
private const val TAG_CATEGORY_NEWBIE_TASK = "newbie_task"
private const val TAG_TASK_NEWBIE_FIRST_WITHDRAW = "newbie_first_withdraw"
@ -36,6 +24,19 @@ 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
fun instance(): TaskManager {
return instance ?: synchronized(this) {
instance ?: TaskManager().also {
instance = it
}
}
}
}
private val mutex = Mutex()
@ -63,6 +64,7 @@ class TaskManager private constructor() {
mutex.withLock {
if (!initialized) {
loadTaskConfigFromAsset()
loadTaskStateFromSp()
}
}
}
@ -76,15 +78,17 @@ class TaskManager private constructor() {
}
}
fun getHomeWatchDurationRewardNum(): Int {
return 28; // TODO - mTaskConfigBean.xxxx
private suspend fun loadTaskStateFromSp() {
return withContext(Dispatchers.IO) {
// TODO ------------
}
}
//------------------------- New -------------------------------
//------------------------- Get tasks -------------------------------
// 日常任务
fun getDailyCheckInTask(): Task? {
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_CHECKIN)
@ -118,6 +122,18 @@ class TaskManager private constructor() {
//----------------------------- 每日签到 -----------------------------//
fun getHomeWatchDurationRewardNum(): Int {
return 28; // TODO - mTaskConfigBean.xxxx
}
fun getCurDayIndexOfDailyCheckIn() {
//...
}
}

View File

@ -0,0 +1,30 @@
package com.gamedog.vididin.manager
import java.io.Serializable
data class TaskStateBean(
val dailySignBean: DailySignBean
): Serializable
data class DailySignBean(
val startMs: Long = 0L,
val signStateList: MutableList<Int> = mutableListOf()
): Serializable {
companion object{
const val SIGN_STATE_ENABLE = 1
const val SIGN_STATE_WAIT = 2
const val SIGN_STATE_FORGOT = 3
}
init {
signStateList.add(SIGN_STATE_WAIT)
signStateList.add(SIGN_STATE_WAIT)
signStateList.add(SIGN_STATE_WAIT)
signStateList.add(SIGN_STATE_WAIT)
signStateList.add(SIGN_STATE_WAIT)
signStateList.add(SIGN_STATE_WAIT)
signStateList.add(SIGN_STATE_WAIT)
}
}