优化taskmanager 结构+1
This commit is contained in:
parent
5fdf3a4ad9
commit
738b0b3ae9
|
|
@ -1,13 +1,10 @@
|
||||||
package com.gamedog.vididin.manager
|
package com.gamedog.vididin.manager
|
||||||
|
|
||||||
import com.ama.core.architecture.util.DateUtil
|
|
||||||
import com.ama.core.architecture.util.FileUtil
|
import com.ama.core.architecture.util.FileUtil
|
||||||
import com.ama.core.architecture.util.SpUtil
|
|
||||||
import com.ama.core.architecture.util.eventbus.NotifyMan
|
|
||||||
import com.gamedog.vididin.VididinEvents
|
|
||||||
import com.gamedog.vididin.core.login.login.AccountManager
|
|
||||||
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.gamedog.vididin.manager.helpers.DailySignTaskHelper
|
||||||
|
import com.gamedog.vididin.manager.helpers.DailyWatchVideoTaskHelper
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
import kotlinx.coroutines.sync.Mutex
|
import kotlinx.coroutines.sync.Mutex
|
||||||
import kotlinx.coroutines.sync.withLock
|
import kotlinx.coroutines.sync.withLock
|
||||||
|
|
@ -48,9 +45,9 @@ class TaskManager private constructor() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private val mDailySignTaskHelper: DailySignTaskHelper by lazy {
|
private val mDailySignTaskHelper by lazy { DailySignTaskHelper() }
|
||||||
DailySignTaskHelper()
|
|
||||||
}
|
private val mDailyWatchVideoTaskHelper by lazy { DailyWatchVideoTaskHelper() }
|
||||||
|
|
||||||
private val mutex = Mutex()
|
private val mutex = Mutex()
|
||||||
|
|
||||||
|
|
@ -83,7 +80,6 @@ class TaskManager private constructor() {
|
||||||
mutex.withLock {
|
mutex.withLock {
|
||||||
if (!initialized) {
|
if (!initialized) {
|
||||||
loadTaskConfigFromAsset()
|
loadTaskConfigFromAsset()
|
||||||
mDailySignTaskHelper.loadTaskStatesFromSp()
|
|
||||||
initHelpers()
|
initHelpers()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -101,8 +97,9 @@ class TaskManager private constructor() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private fun initHelpers() {
|
private suspend fun initHelpers() {
|
||||||
mDailySignTaskHelper.setTaskConfig(getDailyCheckInTask()!!)
|
mDailySignTaskHelper.initDatas(getDailyCheckInTask()!!)
|
||||||
|
mDailyWatchVideoTaskHelper.initDatas(getDailyVideoTask()!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -116,6 +113,10 @@ class TaskManager private constructor() {
|
||||||
return mDailySignTaskHelper
|
return mDailySignTaskHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun dailyWatchTask(): DailyWatchVideoTaskHelper {
|
||||||
|
return mDailyWatchVideoTaskHelper
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//------------------------- Get tasks -------------------------------
|
//------------------------- Get tasks -------------------------------
|
||||||
|
|
@ -170,143 +171,6 @@ private class ConfigHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class DailySignTaskHelper() {
|
|
||||||
private var mCurDayIndexDailySign: Int = 0
|
|
||||||
private var mDailySignData: DailySignBean = DailySignBean()
|
|
||||||
private lateinit var mTaskConfig: Task
|
|
||||||
|
|
||||||
fun setTaskConfig(taskConfig: Task) {
|
|
||||||
mTaskConfig = taskConfig
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun loadTaskStatesFromSp() {
|
|
||||||
return withContext(Dispatchers.IO) {
|
|
||||||
val taskStateBeanInSp = SpUtil.instance().getObject<DailySignBean>(SpUtil.KEY_TASK_BEAN)
|
|
||||||
if (taskStateBeanInSp == null) {
|
|
||||||
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
|
||||||
} else {
|
|
||||||
mDailySignData = taskStateBeanInSp
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fun getCurDayIndexOfDailyCheckIn() : Int {
|
|
||||||
var dayIndexOfPeriod = 0
|
|
||||||
|
|
||||||
val periodStartMs = mDailySignData.startMs
|
|
||||||
if (periodStartMs > 0) {
|
|
||||||
dayIndexOfPeriod = DateUtil.getPassedDayNum(periodStartMs, DateUtil.getCurTimeMs())
|
|
||||||
if (dayIndexOfPeriod > 6) {
|
|
||||||
mDailySignData.startMs = DateUtil.getCurTimeMs()
|
|
||||||
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
mDailySignData.startMs = DateUtil.getCurTimeMs()
|
|
||||||
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
|
||||||
}
|
|
||||||
|
|
||||||
mCurDayIndexDailySign = dayIndexOfPeriod
|
|
||||||
return dayIndexOfPeriod
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getDailySignStateBean(dayIndex: Int): DailySignDayInfoBean {
|
|
||||||
return mDailySignData.signStateList[dayIndex]
|
|
||||||
}
|
|
||||||
|
|
||||||
fun executeDailySign(dayIndex: Int, isDoubleReward: Boolean, isByAd: Boolean) : Boolean {
|
|
||||||
val daySignState = mDailySignData.signStateList[dayIndex]
|
|
||||||
|
|
||||||
if (!daySignState.hasSigned || (dayIndex == mCurDayIndexDailySign && !daySignState.hasWatchedAd)) {
|
|
||||||
val dayReward = getRewardNumOfDailySign(dayIndex)
|
|
||||||
val finalReward = if (isDoubleReward) 2*dayReward else dayReward
|
|
||||||
daySignState.hasRewardedNum += finalReward
|
|
||||||
daySignState.hasSigned = true
|
|
||||||
daySignState.hasWatchedAd = isByAd
|
|
||||||
saveDailySignInfo()
|
|
||||||
AccountManager.addGold(finalReward)
|
|
||||||
notifySignStateChanged(Pair(dayIndex, daySignState))
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun notifySignStateChanged(dataPair: Pair<Int, DailySignDayInfoBean>) {
|
|
||||||
NotifyMan.instance().sendEvent(VididinEvents.Event_Sign_State_Changed, NotifyMan.NotifyData(dataPair))
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun saveDailySignInfo() {
|
|
||||||
SpUtil.instance().putObject(SpUtil.KEY_DAILY_SIGN, mDailySignData)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun generateTestDailySignTestBean() {
|
|
||||||
mDailySignData = DailySignBean().apply {
|
|
||||||
startMs = DateUtil.getCurTimeMs() - 4 * DateUtil.MS_NUM_ONE_DAY
|
|
||||||
signStateList.clear()
|
|
||||||
signStateList.add(DailySignDayInfoBean(hasSigned = true, hasWatchedAd = true))
|
|
||||||
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
|
||||||
signStateList.add(DailySignDayInfoBean(hasSigned = true, hasWatchedAd = false))
|
|
||||||
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
|
||||||
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
|
||||||
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
|
||||||
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
|
||||||
}
|
|
||||||
|
|
||||||
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
|
||||||
AccountManager.saveBankAccount(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getForgotSignDays(): Int {
|
|
||||||
var forgotSignDays = 0
|
|
||||||
val curDayIndex = getCurDayIndexOfDailyCheckIn()
|
|
||||||
mDailySignData.signStateList.forEachIndexed { index, item->
|
|
||||||
if (!item.hasSigned && index < curDayIndex) {
|
|
||||||
forgotSignDays++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return forgotSignDays
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getSignDaysTotal(): Int {
|
|
||||||
var signDays = 0
|
|
||||||
mDailySignData.signStateList.forEachIndexed { index, item->
|
|
||||||
if (item.hasSigned) {
|
|
||||||
signDays++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return signDays
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getForgotSignFirstDayIndex(): Int {
|
|
||||||
val curDayIndex = getCurDayIndexOfDailyCheckIn()
|
|
||||||
mDailySignData.signStateList.forEachIndexed { index, item->
|
|
||||||
if (!item.hasSigned && index < curDayIndex) {
|
|
||||||
return index
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fun getDayStateList(): List<DailySignDayInfoBean> {
|
|
||||||
return mDailySignData.signStateList
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getRewardNumOfDailySign(dayIndex: Int) : Int {
|
|
||||||
return mTaskConfig.reward_details[dayIndex].value
|
|
||||||
}
|
|
||||||
|
|
||||||
fun isDailySignAllOperationDone(): Boolean {
|
|
||||||
val curDayState = getDailySignStateBean(mCurDayIndexDailySign)
|
|
||||||
return curDayState.hasSigned && curDayState.hasWatchedAd && getForgotSignFirstDayIndex() <= 0
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private class DailyWatchVideoTaskHelper {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private class DailyBoxTaskHelper {
|
private class DailyBoxTaskHelper {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.gamedog.vididin.manager.helpers
|
||||||
|
|
||||||
|
import com.ama.core.architecture.util.eventbus.NotifyMan
|
||||||
|
import com.gamedog.vididin.main.fragments.task.Task
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
|
abstract class BaseHelper {
|
||||||
|
protected lateinit var mTaskConfig: Task
|
||||||
|
private var mEventCallback: NotifyMan.ICallback? = null
|
||||||
|
|
||||||
|
abstract fun loadTaskFromSp()
|
||||||
|
|
||||||
|
suspend fun initDatas(taskConfig: Task) {
|
||||||
|
mTaskConfig = taskConfig
|
||||||
|
|
||||||
|
return withContext(Dispatchers.IO) {
|
||||||
|
loadTaskFromSp()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
protected fun registerEvents(onEvents: ((NotifyMan.NotifyData<*>?)->Unit), vararg eventTypes: Int) {
|
||||||
|
if (mEventCallback == null) {
|
||||||
|
mEventCallback = object : NotifyMan.ICallback(true) {
|
||||||
|
override fun onEvent(data: NotifyMan.NotifyData<*>?) {
|
||||||
|
onEvents.invoke(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NotifyMan.instance().register(mEventCallback, *eventTypes)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun release() {
|
||||||
|
NotifyMan.instance().unregister(mEventCallback)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,138 @@
|
||||||
|
package com.gamedog.vididin.manager.helpers
|
||||||
|
|
||||||
|
import com.ama.core.architecture.util.DateUtil
|
||||||
|
import com.ama.core.architecture.util.SpUtil
|
||||||
|
import com.ama.core.architecture.util.eventbus.NotifyMan
|
||||||
|
import com.gamedog.vididin.VididinEvents
|
||||||
|
import com.gamedog.vididin.core.login.login.AccountManager
|
||||||
|
import com.gamedog.vididin.manager.taskbeans.TaskDailySignBean
|
||||||
|
import com.gamedog.vididin.manager.taskbeans.DailySignDayInfoBean
|
||||||
|
|
||||||
|
|
||||||
|
class DailySignTaskHelper : BaseHelper() {
|
||||||
|
private var mCurDayIndexDailySign: Int = 0
|
||||||
|
private var mDailySignData: TaskDailySignBean = TaskDailySignBean()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
override fun loadTaskFromSp() {
|
||||||
|
val taskStateBeanInSp = SpUtil.instance().getObject<TaskDailySignBean>(SpUtil.KEY_TASK_BEAN)
|
||||||
|
if (taskStateBeanInSp == null) {
|
||||||
|
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
||||||
|
} else {
|
||||||
|
mDailySignData = taskStateBeanInSp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getCurDayIndexOfDailyCheckIn() : Int {
|
||||||
|
var dayIndexOfPeriod = 0
|
||||||
|
|
||||||
|
val periodStartMs = mDailySignData.startDurationMs
|
||||||
|
if (periodStartMs > 0) {
|
||||||
|
dayIndexOfPeriod = DateUtil.getPassedDayNum(periodStartMs, DateUtil.getCurTimeMs())
|
||||||
|
if (dayIndexOfPeriod > 6) {
|
||||||
|
mDailySignData.startDurationMs = DateUtil.getCurTimeMs()
|
||||||
|
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mDailySignData.startDurationMs = DateUtil.getCurTimeMs()
|
||||||
|
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
||||||
|
}
|
||||||
|
|
||||||
|
mCurDayIndexDailySign = dayIndexOfPeriod
|
||||||
|
return dayIndexOfPeriod
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getDailySignStateBean(dayIndex: Int): DailySignDayInfoBean {
|
||||||
|
return mDailySignData.signStateList[dayIndex]
|
||||||
|
}
|
||||||
|
|
||||||
|
fun executeDailySign(dayIndex: Int, isDoubleReward: Boolean, isByAd: Boolean) : Boolean {
|
||||||
|
val daySignState = mDailySignData.signStateList[dayIndex]
|
||||||
|
|
||||||
|
if (!daySignState.hasSigned || (dayIndex == mCurDayIndexDailySign && !daySignState.hasWatchedAd)) {
|
||||||
|
val dayReward = getRewardNumOfDailySign(dayIndex)
|
||||||
|
val finalReward = if (isDoubleReward) 2*dayReward else dayReward
|
||||||
|
daySignState.hasRewardedNum += finalReward
|
||||||
|
daySignState.hasSigned = true
|
||||||
|
daySignState.hasWatchedAd = isByAd
|
||||||
|
saveDailySignInfo()
|
||||||
|
AccountManager.addGold(finalReward)
|
||||||
|
notifySignStateChanged(Pair(dayIndex, daySignState))
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun notifySignStateChanged(dataPair: Pair<Int, DailySignDayInfoBean>) {
|
||||||
|
NotifyMan.instance().sendEvent(VididinEvents.Event_Sign_State_Changed, NotifyMan.NotifyData(dataPair))
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun saveDailySignInfo() {
|
||||||
|
SpUtil.instance().putObject(SpUtil.KEY_DAILY_SIGN, mDailySignData)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun generateTestDailySignTestBean() {
|
||||||
|
mDailySignData = TaskDailySignBean().apply {
|
||||||
|
startDurationMs = DateUtil.getCurTimeMs() - 4 * DateUtil.MS_NUM_ONE_DAY
|
||||||
|
signStateList.clear()
|
||||||
|
signStateList.add(DailySignDayInfoBean(hasSigned = true, hasWatchedAd = true))
|
||||||
|
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
||||||
|
signStateList.add(DailySignDayInfoBean(hasSigned = true, hasWatchedAd = false))
|
||||||
|
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
||||||
|
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
||||||
|
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
||||||
|
signStateList.add(DailySignDayInfoBean(hasSigned = false, hasWatchedAd = false))
|
||||||
|
}
|
||||||
|
|
||||||
|
SpUtil.instance().putObject(SpUtil.KEY_TASK_BEAN, mDailySignData)
|
||||||
|
AccountManager.saveBankAccount(null)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getForgotSignDays(): Int {
|
||||||
|
var forgotSignDays = 0
|
||||||
|
val curDayIndex = getCurDayIndexOfDailyCheckIn()
|
||||||
|
mDailySignData.signStateList.forEachIndexed { index, item->
|
||||||
|
if (!item.hasSigned && index < curDayIndex) {
|
||||||
|
forgotSignDays++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return forgotSignDays
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getSignDaysTotal(): Int {
|
||||||
|
var signDays = 0
|
||||||
|
mDailySignData.signStateList.forEachIndexed { index, item->
|
||||||
|
if (item.hasSigned) {
|
||||||
|
signDays++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return signDays
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getForgotSignFirstDayIndex(): Int {
|
||||||
|
val curDayIndex = getCurDayIndexOfDailyCheckIn()
|
||||||
|
mDailySignData.signStateList.forEachIndexed { index, item->
|
||||||
|
if (!item.hasSigned && index < curDayIndex) {
|
||||||
|
return index
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun getDayStateList(): List<DailySignDayInfoBean> {
|
||||||
|
return mDailySignData.signStateList
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getRewardNumOfDailySign(dayIndex: Int) : Int {
|
||||||
|
return mTaskConfig.reward_details[dayIndex].value
|
||||||
|
}
|
||||||
|
|
||||||
|
fun isDailySignAllOperationDone(): Boolean {
|
||||||
|
val curDayState = getDailySignStateBean(mCurDayIndexDailySign)
|
||||||
|
return curDayState.hasSigned && curDayState.hasWatchedAd && getForgotSignFirstDayIndex() <= 0
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.gamedog.vididin.manager.helpers
|
||||||
|
|
||||||
|
import com.ama.core.architecture.util.DateUtil
|
||||||
|
import com.ama.core.architecture.util.SpUtil
|
||||||
|
import com.gamedog.vididin.VididinEvents
|
||||||
|
import com.gamedog.vididin.manager.taskbeans.DailyStateWatchVideoBean
|
||||||
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class DailyWatchVideoTaskHelper : BaseHelper() {
|
||||||
|
|
||||||
|
private var mStateBean: DailyStateWatchVideoBean? = null
|
||||||
|
private val mWatchedMap = ConcurrentHashMap<String, Long>()
|
||||||
|
|
||||||
|
|
||||||
|
init {
|
||||||
|
registerEvents( { eventData->
|
||||||
|
val dataPair: Pair<String, Long> = eventData?.mData as Pair<String, Long>
|
||||||
|
addWatchedVideoInfo(dataPair)
|
||||||
|
}, VididinEvents.Event_Finish_Video)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun loadTaskFromSp() {
|
||||||
|
mStateBean = SpUtil.instance().getObject<DailyStateWatchVideoBean>(SpUtil.KEY_DAILY_WATCH)
|
||||||
|
|
||||||
|
if (mStateBean == null || !isCurBeanInToday()) {
|
||||||
|
generateTodayTask()
|
||||||
|
SpUtil.instance().putObject(SpUtil.KEY_DAILY_WATCH, mStateBean)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun generateTodayTask() {
|
||||||
|
mStateBean = DailyStateWatchVideoBean(DateUtil.getCurTimeMs())
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isCurBeanInToday(): Boolean {
|
||||||
|
return mStateBean != null && DateUtil.isToday(mStateBean?.todayStartMs!!)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun addWatchedVideoInfo(dataPair: Pair<String, Long>) {
|
||||||
|
mWatchedMap.put(dataPair.first, dataPair.second)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,22 +1,12 @@
|
||||||
package com.gamedog.vididin.manager
|
package com.gamedog.vididin.manager.taskbeans
|
||||||
|
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
|
|
||||||
|
data class TaskDailySignBean(
|
||||||
|
var startDurationMs: Long = 0,
|
||||||
data class DailySignBean(
|
|
||||||
var startMs: Long = 0,
|
|
||||||
val signStateList: MutableList<DailySignDayInfoBean> = mutableListOf()
|
val signStateList: MutableList<DailySignDayInfoBean> = mutableListOf()
|
||||||
|
|
||||||
): Serializable {
|
): Serializable {
|
||||||
companion object{
|
|
||||||
const val SIGN_STATE_ENABLE = 1
|
|
||||||
const val SIGN_STATE_DISABLE = 2
|
|
||||||
const val SIGN_STATE_DONE = 3
|
|
||||||
const val SIGN_STATE_FORGOT = 4
|
|
||||||
}
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
signStateList.add(DailySignDayInfoBean())
|
signStateList.add(DailySignDayInfoBean())
|
||||||
signStateList.add(DailySignDayInfoBean())
|
signStateList.add(DailySignDayInfoBean())
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.gamedog.vididin.manager.taskbeans
|
||||||
|
|
||||||
|
import java.io.Serializable
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
data class DailyStateWatchVideoBean(
|
||||||
|
var todayStartMs: Long = 0,
|
||||||
|
var watchedVideoNum: Int = 0,
|
||||||
|
): Serializable {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@ import com.ama.core.architecture.util.ResUtil
|
||||||
import com.gamedog.vididin.R
|
import com.gamedog.vididin.R
|
||||||
import com.gamedog.vididin.databinding.DailySignItemBinding
|
import com.gamedog.vididin.databinding.DailySignItemBinding
|
||||||
import com.gamedog.vididin.main.fragments.task.RewardDetail
|
import com.gamedog.vididin.main.fragments.task.RewardDetail
|
||||||
import com.gamedog.vididin.manager.DailySignDayInfoBean
|
import com.gamedog.vididin.manager.taskbeans.DailySignDayInfoBean
|
||||||
import kotlin.run
|
import kotlin.run
|
||||||
|
|
||||||
class DailySignItemView @JvmOverloads constructor(
|
class DailySignItemView @JvmOverloads constructor(
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,22 @@ import java.nio.charset.Charset
|
||||||
|
|
||||||
class SpUtil private constructor(spFileName: String) {
|
class SpUtil private constructor(spFileName: String) {
|
||||||
companion object {
|
companion object {
|
||||||
const val KEY_ACCOUNT = "KEY_ACCOUNT"
|
private const val DEFAULT_SP_NAME = "VidiDin_Common"
|
||||||
const val KEY_ACCOUNT_TOKEN = "KEY_ACCOUNT_TOKEN"
|
|
||||||
const val KEY_TASK_BEAN = "KEY_TASK_BEAN"
|
|
||||||
const val KEY_DAILY_SIGN = "KEY_DAILY_SIGN"
|
|
||||||
|
const val KEY_ACCOUNT = "KEY_ACCOUNT"
|
||||||
|
const val KEY_TASK_BEAN = "KEY_TASK_BEAN"
|
||||||
|
|
||||||
|
|
||||||
|
// Various tasks
|
||||||
|
const val KEY_DAILY_SIGN = "KEY_DAILY_SIGN"
|
||||||
|
const val KEY_DAILY_WATCH = "KEY_DAILY_WATCH"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private const val DEFAULT_SP_NAME = "enhanced_prefs"
|
|
||||||
@Volatile
|
@Volatile
|
||||||
private var instance: SpUtil? = null
|
private var instance: SpUtil? = null
|
||||||
fun instance(prefName: String = DEFAULT_SP_NAME): SpUtil {
|
fun instance(prefName: String = DEFAULT_SP_NAME): SpUtil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue