定义每日签到数据结构
This commit is contained in:
parent
993b2bf5e0
commit
d92216bfdd
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
//...
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue