金币 现金数量 变化事件接入
This commit is contained in:
parent
78842d8d60
commit
209bb39f29
|
|
@ -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
|
||||
|
||||
}
|
||||
|
|
@ -6,4 +6,6 @@ data class Account(
|
|||
val deviceUUId: String,
|
||||
val token: String="",
|
||||
val createdAt: Long,
|
||||
var goldCount: Long = 0L,
|
||||
var cashCount: Float = 0F,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
})
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue