定义多种task 获取接口
This commit is contained in:
parent
5a6cef78b2
commit
53ab5a294f
|
|
@ -7,7 +7,11 @@ data class TaskBean(
|
||||||
data class TaskModuleConfig(
|
data class TaskModuleConfig(
|
||||||
val basic_info: BasicInfo,
|
val basic_info: BasicInfo,
|
||||||
val task_categories: List<TaskCategory>
|
val task_categories: List<TaskCategory>
|
||||||
)
|
) {
|
||||||
|
fun getTaskCategoryById(categoryId: String): TaskCategory? {
|
||||||
|
return task_categories.find { it.category_id == categoryId }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class BasicInfo(
|
data class BasicInfo(
|
||||||
val currency_display: List<String>,
|
val currency_display: List<String>,
|
||||||
|
|
@ -22,7 +26,11 @@ data class TaskCategory(
|
||||||
val display_priority: Int,
|
val display_priority: Int,
|
||||||
val tasks: List<Task>,
|
val tasks: List<Task>,
|
||||||
val valid_period: String
|
val valid_period: String
|
||||||
)
|
) {
|
||||||
|
fun getTaskById(taskId: String): Task? {
|
||||||
|
return tasks.find { it.task_id == taskId }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class Task(
|
data class Task(
|
||||||
val daily_limit: Int,
|
val daily_limit: Int,
|
||||||
|
|
|
||||||
|
|
@ -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.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
|
||||||
import kotlinx.coroutines.sync.Mutex
|
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()
|
private val mutex = Mutex()
|
||||||
|
|
||||||
@Volatile
|
@Volatile
|
||||||
private var initialized = false
|
private var initialized = false
|
||||||
private var mTaskConfigBean: TaskBean? = null
|
private var mTaskConfig: TaskBean? = null
|
||||||
private val mGson = GsonBuilder().create()
|
private val mGson = GsonBuilder().create()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -38,7 +55,7 @@ class TaskManager private constructor() {
|
||||||
if (!initialized) {
|
if (!initialized) {
|
||||||
loadTaskConfigFromAsset()
|
loadTaskConfigFromAsset()
|
||||||
}
|
}
|
||||||
return mTaskConfigBean
|
return mTaskConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadTaskConfigAsync() {
|
private fun loadTaskConfigAsync() {
|
||||||
|
|
@ -54,7 +71,7 @@ class TaskManager private constructor() {
|
||||||
private suspend fun loadTaskConfigFromAsset() {
|
private suspend fun loadTaskConfigFromAsset() {
|
||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
val configStr = FileUtil.readAssetsFile("taskConfig.json")
|
val configStr = FileUtil.readAssetsFile("taskConfig.json")
|
||||||
mTaskConfigBean = mGson.fromJson(configStr, TaskBean::class.java)
|
mTaskConfig = mGson.fromJson(configStr, TaskBean::class.java)
|
||||||
initialized = true
|
initialized = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -62,6 +79,45 @@ class TaskManager private constructor() {
|
||||||
fun getHomeWatchDurationRewardNum(): Int {
|
fun getHomeWatchDurationRewardNum(): Int {
|
||||||
return 28; // TODO - mTaskConfigBean.xxxx
|
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