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

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 {
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 token: String="",
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.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<Account>(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)
}
})
}*/
}

View File

@ -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<ViewBinding, UiState, ViewModel>(), OnTab
dailyTaskWatch30.setActionFun {
gotoWithVideo()
}
updateUIGoldTotal()
updateUICashTotal()
}
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() {
registerEvents({data: NotifyMan.NotifyData<*>? ->
when (data?.mEventType) {
VididinEvents.Event_Sign_State_Changed -> {
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() {

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.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
}

View File

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