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 34c961b..75bb152 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 @@ -16,7 +16,8 @@ class DailySignDialog(context: Context) : BindingDialog( init { build() mDataList = TaskManager.instance().getDailyCheckInTask()?.reward_details - initDailySignItems() + initSignItemViews() + initSignState() } private fun build() { @@ -43,7 +44,7 @@ class DailySignDialog(context: Context) : BindingDialog( } - private fun initDailySignItems() { + private fun initSignItemViews() { with(mBinding) { signItem7.setLargeWidthMode() @@ -65,6 +66,10 @@ class DailySignDialog(context: Context) : BindingDialog( } } + private fun initSignState() { + val todayIndex = TaskManager.instance().getCurDayIndexOfDailyCheckIn() + } + private fun handleItemSelectStateChanged(itemIndex: Int, selected: Boolean) { mSignItemList.forEachIndexed { index, itemView -> if (itemIndex != index) { 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 2bf6c4b..1dd0b2a 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt @@ -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() { + //... + } + + } diff --git a/app/src/main/java/com/gamedog/vididin/manager/TaskStateBean.kt b/app/src/main/java/com/gamedog/vididin/manager/TaskStateBean.kt new file mode 100644 index 0000000..90a0ab3 --- /dev/null +++ b/app/src/main/java/com/gamedog/vididin/manager/TaskStateBean.kt @@ -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 = 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) + } +}