diff --git a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt index 88eca6a..12e0629 100644 --- a/app/src/main/java/com/gamedog/vididin/VididinEvents.kt +++ b/app/src/main/java/com/gamedog/vididin/VididinEvents.kt @@ -2,5 +2,7 @@ package com.gamedog.vididin object VididinEvents { const val Event_Sign_State_Changed = 600 + const val Event_Account_Gold_Changed = 601 + const val Event_Account_Cash_Changed = 602 } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/beans/Account.kt b/app/src/main/java/com/gamedog/vididin/beans/Account.kt index 82a9440..7d9f2a3 100644 --- a/app/src/main/java/com/gamedog/vididin/beans/Account.kt +++ b/app/src/main/java/com/gamedog/vididin/beans/Account.kt @@ -6,4 +6,6 @@ data class Account( val deviceUUId: String, val token: String="", val createdAt: Long, + var goldCount: Long = 0L, + var cashCount: Float = 0F, ) diff --git a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt index 03beb2d..3738993 100644 --- a/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt +++ b/app/src/main/java/com/gamedog/vididin/login/AccountManager.kt @@ -3,6 +3,8 @@ package com.gamedog.vididin.core.login.login import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.DeviceUtil import com.ama.core.architecture.util.SpUtil +import com.ama.core.architecture.util.eventbus.NotifyMan +import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.beans.Account @@ -25,17 +27,23 @@ object AccountManager { return mAccount } - /*fun initAccount() : Account { - AsyncUtil.doGlobalAsync({ - SpUtil.instance().getObject(SpUtil.KEY_ACCOUNT) - }, onComplete = { item-> - mAccount = item - if (mAccount == null) { - val deviceUUId = DeviceUtil.generateDeviceId() - mAccount = Account(accountId = "user_$deviceUUId", deviceUUId=deviceUUId, createdAt = DateUtil.getCurTimeMs()) - } - }) - }*/ + fun getGold(): Long { + return mAccount?.goldCount ?: 0L + } + + fun getCash(): Float { + return mAccount?.cashCount ?: 0F + } + + fun addGold(newGold: Int) { + mAccount?.goldCount += newGold + NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Gold_Changed, null) + } + + fun addCash(newCash: Float) { + mAccount?.cashCount += newCash + NotifyMan.instance().sendEvent(VididinEvents.Event_Account_Cash_Changed, null) + } } diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index 23789f6..bf94770 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -15,6 +15,7 @@ import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setStatusBarDarkFont import com.gamedog.vididin.R import com.gamedog.vididin.VididinEvents +import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.fragments.task.TaskBean @@ -130,6 +131,10 @@ class TasksFragment : AppViewsFragment(), OnTab dailyTaskWatch30.setActionFun { gotoWithVideo() } + + + updateUIGoldTotal() + updateUICashTotal() } lifecycleScope.launch { @@ -137,14 +142,34 @@ class TasksFragment : AppViewsFragment(), OnTab } } + private fun updateUICashTotal() { + binding?.tvCashTotal?.text = buildString { + append(ResUtil.getString(R.string.cash)) + append(" ") + append(AccountManager.getCash()) + } + } + + private fun updateUIGoldTotal() { + binding?.tvGoldTotal?.text = AccountManager.getGold().toString() + } + override fun ViewBinding.initListeners() { registerEvents({data: NotifyMan.NotifyData<*>? -> when (data?.mEventType) { VididinEvents.Event_Sign_State_Changed -> { updateDailySignButUI() } + + VididinEvents.Event_Account_Gold_Changed -> { + updateUIGoldTotal() + } + + VididinEvents.Event_Account_Cash_Changed -> { + updateUICashTotal() + } } - }, VididinEvents.Event_Sign_State_Changed) + }, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed, VididinEvents.Event_Account_Gold_Changed) } private fun updateDailySignButUI() { diff --git a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt index ed23c9b..7b00e40 100644 --- a/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt +++ b/app/src/main/java/com/gamedog/vididin/manager/TaskManager.kt @@ -5,6 +5,7 @@ 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.TaskBean import com.google.gson.GsonBuilder @@ -180,10 +181,12 @@ class TaskManager private constructor() { if (!daySignState.hasSigned || (dayIndex == mCurDayIndexDailySign && !daySignState.hasWatchedAd)) { val dayReward = getDailyCheckInTask()?.reward_details?.get(dayIndex)?.value ?: 0 - daySignState.hasRewardedNum += if (isDoubleReward) 2*dayReward else dayReward + 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 } diff --git a/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml b/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml index 87e483b..a88b2c4 100644 --- a/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml +++ b/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml @@ -66,13 +66,14 @@ /> @@ -129,6 +130,7 @@ />