定义每日签到数据结构
This commit is contained in:
parent
993b2bf5e0
commit
d92216bfdd
|
|
@ -16,7 +16,8 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
|
||||||
init {
|
init {
|
||||||
build()
|
build()
|
||||||
mDataList = TaskManager.instance().getDailyCheckInTask()?.reward_details
|
mDataList = TaskManager.instance().getDailyCheckInTask()?.reward_details
|
||||||
initDailySignItems()
|
initSignItemViews()
|
||||||
|
initSignState()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun build() {
|
private fun build() {
|
||||||
|
|
@ -43,7 +44,7 @@ class DailySignDialog(context: Context) : BindingDialog<DialogDailySignBinding>(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun initDailySignItems() {
|
private fun initSignItemViews() {
|
||||||
with(mBinding) {
|
with(mBinding) {
|
||||||
signItem7.setLargeWidthMode()
|
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) {
|
private fun handleItemSelectStateChanged(itemIndex: Int, selected: Boolean) {
|
||||||
mSignItemList.forEachIndexed { index, itemView ->
|
mSignItemList.forEachIndexed { index, itemView ->
|
||||||
if (itemIndex != index) {
|
if (itemIndex != index) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.gamedog.vididin.manager
|
package com.gamedog.vididin.manager
|
||||||
|
|
||||||
import com.ama.core.architecture.util.FileUtil
|
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.Task
|
||||||
import com.gamedog.vididin.main.fragments.task.TaskBean
|
import com.gamedog.vididin.main.fragments.task.TaskBean
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
|
|
@ -10,19 +11,6 @@ import kotlinx.coroutines.*
|
||||||
|
|
||||||
class TaskManager private constructor() {
|
class TaskManager private constructor() {
|
||||||
companion object {
|
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_CATEGORY_NEWBIE_TASK = "newbie_task"
|
||||||
private const val TAG_TASK_NEWBIE_FIRST_WITHDRAW = "newbie_first_withdraw"
|
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_VIDEO = "daily_video_ladder"
|
||||||
private const val TAG_TASK_DAILY_AD = "daily_ad_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()
|
private val mutex = Mutex()
|
||||||
|
|
@ -63,6 +64,7 @@ class TaskManager private constructor() {
|
||||||
mutex.withLock {
|
mutex.withLock {
|
||||||
if (!initialized) {
|
if (!initialized) {
|
||||||
loadTaskConfigFromAsset()
|
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 ------------
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//------------------------- Get tasks -------------------------------
|
||||||
//------------------------- New -------------------------------
|
|
||||||
// 日常任务
|
// 日常任务
|
||||||
fun getDailyCheckInTask(): Task? {
|
fun getDailyCheckInTask(): Task? {
|
||||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_CHECKIN)
|
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