金币 现金数量 变化事件接入

This commit is contained in:
renhaoting 2025-11-27 14:43:33 +08:00
parent 78842d8d60
commit 209bb39f29
6 changed files with 56 additions and 14 deletions

View File

@ -2,5 +2,7 @@ package com.gamedog.vididin
object VididinEvents { object VididinEvents {
const val Event_Sign_State_Changed = 600 const val Event_Sign_State_Changed = 600
const val Event_Account_Gold_Changed = 601
const val Event_Account_Cash_Changed = 602
} }

View File

@ -6,4 +6,6 @@ data class Account(
val deviceUUId: String, val deviceUUId: String,
val token: String="", val token: String="",
val createdAt: Long, val createdAt: Long,
var goldCount: Long = 0L,
var cashCount: Float = 0F,
) )

View File

@ -3,6 +3,8 @@ package com.gamedog.vididin.core.login.login
import com.ama.core.architecture.util.DateUtil import com.ama.core.architecture.util.DateUtil
import com.ama.core.architecture.util.DeviceUtil import com.ama.core.architecture.util.DeviceUtil
import com.ama.core.architecture.util.SpUtil 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 import com.gamedog.vididin.beans.Account
@ -25,17 +27,23 @@ object AccountManager {
return mAccount return mAccount
} }
/*fun initAccount() : Account { fun getGold(): Long {
AsyncUtil.doGlobalAsync({ return mAccount?.goldCount ?: 0L
SpUtil.instance().getObject<Account>(SpUtil.KEY_ACCOUNT) }
}, onComplete = { item->
mAccount = item fun getCash(): Float {
if (mAccount == null) { return mAccount?.cashCount ?: 0F
val deviceUUId = DeviceUtil.generateDeviceId() }
mAccount = Account(accountId = "user_$deviceUUId", deviceUUId=deviceUUId, createdAt = DateUtil.getCurTimeMs())
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)
} }
})
}*/
} }

View File

@ -15,6 +15,7 @@ import com.ama.core.architecture.util.setOnClickBatch
import com.ama.core.architecture.util.setStatusBarDarkFont import com.ama.core.architecture.util.setStatusBarDarkFont
import com.gamedog.vididin.R import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.WatchVideoDialog
import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog
import com.gamedog.vididin.main.fragments.task.TaskBean import com.gamedog.vididin.main.fragments.task.TaskBean
@ -130,6 +131,10 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
dailyTaskWatch30.setActionFun { dailyTaskWatch30.setActionFun {
gotoWithVideo() gotoWithVideo()
} }
updateUIGoldTotal()
updateUICashTotal()
} }
lifecycleScope.launch { lifecycleScope.launch {
@ -137,14 +142,34 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), 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() { override fun ViewBinding.initListeners() {
registerEvents({data: NotifyMan.NotifyData<*>? -> registerEvents({data: NotifyMan.NotifyData<*>? ->
when (data?.mEventType) { when (data?.mEventType) {
VididinEvents.Event_Sign_State_Changed -> { VididinEvents.Event_Sign_State_Changed -> {
updateDailySignButUI() updateDailySignButUI()
} }
VididinEvents.Event_Account_Gold_Changed -> {
updateUIGoldTotal()
} }
}, VididinEvents.Event_Sign_State_Changed)
VididinEvents.Event_Account_Cash_Changed -> {
updateUICashTotal()
}
}
}, VididinEvents.Event_Sign_State_Changed, VididinEvents.Event_Account_Cash_Changed, VididinEvents.Event_Account_Gold_Changed)
} }
private fun updateDailySignButUI() { private fun updateDailySignButUI() {

View File

@ -5,6 +5,7 @@ import com.ama.core.architecture.util.FileUtil
import com.ama.core.architecture.util.SpUtil import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.eventbus.NotifyMan import com.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.VididinEvents 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.google.gson.GsonBuilder import com.google.gson.GsonBuilder
@ -180,10 +181,12 @@ class TaskManager private constructor() {
if (!daySignState.hasSigned || (dayIndex == mCurDayIndexDailySign && !daySignState.hasWatchedAd)) { if (!daySignState.hasSigned || (dayIndex == mCurDayIndexDailySign && !daySignState.hasWatchedAd)) {
val dayReward = getDailyCheckInTask()?.reward_details?.get(dayIndex)?.value ?: 0 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.hasSigned = true
daySignState.hasWatchedAd = isByAd daySignState.hasWatchedAd = isByAd
saveDailySignInfo() saveDailySignInfo()
AccountManager.addGold(finalReward)
notifySignStateChanged(Pair(dayIndex, daySignState)) notifySignStateChanged(Pair(dayIndex, daySignState))
return true return true
} }

View File

@ -66,13 +66,14 @@
/> />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_gold_total"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textStyle="bold" android:textStyle="bold"
android:textSize="21sp" android:textSize="21sp"
android:textColor="@color/pink_0b" android:textColor="@color/pink_0b"
android:layout_marginLeft="6dp" android:layout_marginLeft="6dp"
android:text="12345" android:text="0"
/> />
</LinearLayout> </LinearLayout>
@ -129,6 +130,7 @@
/> />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_cash_total"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textStyle="bold" android:textStyle="bold"