2025-11-20 09:45:17 +00:00
|
|
|
package com.gamedog.vididin.manager
|
|
|
|
|
|
|
|
|
|
import com.ama.core.architecture.util.FileUtil
|
|
|
|
|
import com.gamedog.vididin.main.fragments.task.TaskBean
|
|
|
|
|
import com.google.gson.GsonBuilder
|
|
|
|
|
import kotlinx.coroutines.sync.Mutex
|
|
|
|
|
import kotlinx.coroutines.sync.withLock
|
|
|
|
|
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 val mutex = Mutex()
|
|
|
|
|
|
|
|
|
|
@Volatile
|
|
|
|
|
private var initialized = false
|
|
|
|
|
private var mTaskConfigBean: TaskBean? = null
|
|
|
|
|
private val mGson = GsonBuilder().create()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
init {
|
|
|
|
|
loadTaskConfigAsync()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
suspend fun getTaskConfig(): TaskBean? = mutex.withLock {
|
|
|
|
|
if (!initialized) {
|
|
|
|
|
loadTaskConfigFromAsset()
|
|
|
|
|
}
|
|
|
|
|
return mTaskConfigBean
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun loadTaskConfigAsync() {
|
|
|
|
|
CoroutineScope(Dispatchers.IO).launch {
|
|
|
|
|
mutex.withLock {
|
|
|
|
|
if (!initialized) {
|
|
|
|
|
loadTaskConfigFromAsset()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private suspend fun loadTaskConfigFromAsset() {
|
|
|
|
|
return withContext(Dispatchers.IO) {
|
|
|
|
|
val configStr = FileUtil.readAssetsFile("taskConfig.json")
|
|
|
|
|
mTaskConfigBean = mGson.fromJson(configStr, TaskBean::class.java)
|
|
|
|
|
initialized = true
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-25 06:59:50 +00:00
|
|
|
|
|
|
|
|
fun getHomeWatchDurationRewardNum(): Int {
|
|
|
|
|
return 28; // TODO - mTaskConfigBean.xxxx
|
|
|
|
|
}
|
2025-11-20 09:45:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|