定义多种task 获取接口
This commit is contained in:
parent
5a6cef78b2
commit
53ab5a294f
|
|
@ -7,7 +7,11 @@ data class TaskBean(
|
|||
data class TaskModuleConfig(
|
||||
val basic_info: BasicInfo,
|
||||
val task_categories: List<TaskCategory>
|
||||
)
|
||||
) {
|
||||
fun getTaskCategoryById(categoryId: String): TaskCategory? {
|
||||
return task_categories.find { it.category_id == categoryId }
|
||||
}
|
||||
}
|
||||
|
||||
data class BasicInfo(
|
||||
val currency_display: List<String>,
|
||||
|
|
@ -22,7 +26,11 @@ data class TaskCategory(
|
|||
val display_priority: Int,
|
||||
val tasks: List<Task>,
|
||||
val valid_period: String
|
||||
)
|
||||
) {
|
||||
fun getTaskById(taskId: String): Task? {
|
||||
return tasks.find { it.task_id == taskId }
|
||||
}
|
||||
}
|
||||
|
||||
data class Task(
|
||||
val daily_limit: Int,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
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.google.gson.GsonBuilder
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
|
|
@ -19,13 +20,29 @@ class TaskManager private constructor() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 新手任务分类及其子类
|
||||
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_PUSH_NOTIFY = "newbie_push_notify"
|
||||
private const val TAG_TASK_NEWBIE_JOIN_DISCORD = "newbie_join_discord"
|
||||
private const val TAG_TASK_NEWBIE_7DAY_CHECKIN = "newbie_7day_checkin"
|
||||
|
||||
// 日常任务分类及其子类
|
||||
private const val TAG_CATEGORY_DAILY_TASK = "daily_task"
|
||||
private const val TAG_TASK_DAILY_CHECKIN = "daily_checkin"
|
||||
private const val TAG_TASK_DAILY_VIDEO = "daily_video_ladder"
|
||||
private const val TAG_TASK_DAILY_AD = "daily_ad_ladder"
|
||||
|
||||
}
|
||||
|
||||
private val mutex = Mutex()
|
||||
|
||||
@Volatile
|
||||
private var initialized = false
|
||||
private var mTaskConfigBean: TaskBean? = null
|
||||
private var mTaskConfig: TaskBean? = null
|
||||
private val mGson = GsonBuilder().create()
|
||||
|
||||
|
||||
|
|
@ -38,7 +55,7 @@ class TaskManager private constructor() {
|
|||
if (!initialized) {
|
||||
loadTaskConfigFromAsset()
|
||||
}
|
||||
return mTaskConfigBean
|
||||
return mTaskConfig
|
||||
}
|
||||
|
||||
private fun loadTaskConfigAsync() {
|
||||
|
|
@ -54,7 +71,7 @@ class TaskManager private constructor() {
|
|||
private suspend fun loadTaskConfigFromAsset() {
|
||||
return withContext(Dispatchers.IO) {
|
||||
val configStr = FileUtil.readAssetsFile("taskConfig.json")
|
||||
mTaskConfigBean = mGson.fromJson(configStr, TaskBean::class.java)
|
||||
mTaskConfig = mGson.fromJson(configStr, TaskBean::class.java)
|
||||
initialized = true
|
||||
}
|
||||
}
|
||||
|
|
@ -62,6 +79,45 @@ class TaskManager private constructor() {
|
|||
fun getHomeWatchDurationRewardNum(): Int {
|
||||
return 28; // TODO - mTaskConfigBean.xxxx
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------- New -------------------------------
|
||||
// 日常任务
|
||||
fun getDailyCheckInTask(): Task? {
|
||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_CHECKIN)
|
||||
}
|
||||
|
||||
fun getDailyVideoTask(): Task? {
|
||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_VIDEO)
|
||||
}
|
||||
|
||||
fun getDailyAdTask(): Task? {
|
||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_DAILY_TASK)?.getTaskById(TAG_TASK_DAILY_AD)
|
||||
}
|
||||
|
||||
// 新手任务
|
||||
fun getNewbieFirstWithdrawTask(): Task? {
|
||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_FIRST_WITHDRAW)
|
||||
}
|
||||
|
||||
fun getNewbieEnableNotifyTask(): Task? {
|
||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_PUSH_NOTIFY)
|
||||
}
|
||||
|
||||
fun getNewbieJoinDiscordTask(): Task? {
|
||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_JOIN_DISCORD)
|
||||
}
|
||||
|
||||
fun getNewbieCheckInTask(): Task? {
|
||||
return mTaskConfig?.task_module_config?.getTaskCategoryById(TAG_CATEGORY_NEWBIE_TASK)?.getTaskById(TAG_TASK_NEWBIE_7DAY_CHECKIN)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue