广告完成后 事件通知逻辑优化

This commit is contained in:
renhaoting 2025-12-12 18:41:05 +08:00
parent 9066b775a8
commit ae45b72717
8 changed files with 84 additions and 56 deletions

View File

@ -10,7 +10,7 @@ object VididinEvents {
const val Event_HOME_WATCH_Time_TICK = 700 const val Event_HOME_WATCH_Time_TICK = 700
const val Event_Finish_One_Video = 701 const val Event_Finish_One_Video = 701
const val Event_Finish_One_Ad = 702 const val EVENT_FINISHED_ONE_AD = 702
const val Event_Finish_One_Sign = 703 const val Event_Finish_One_Sign = 703
const val Event_Finish_One_Zerobuy = 704 const val Event_Finish_One_Zerobuy = 704
@ -31,7 +31,8 @@ object VididinEvents {
const val Event_AD_TASK_TYPE_Complement = 804 const val Event_AD_TASK_TYPE_Complement = 804
const val EVENT_AD_WATCHED_FOR_BOX_TASK = 805 const val EVENT_AD_WATCHED_FOR_BOX_TASK = 805
const val EVENT_AD_WATCHED_FOR_ZEROBUY_EARN_DIAMOND = 806 const val EVENT_AD_WATCHED_FOR_ZEROBUY_EARN_DIAMOND = 806
const val EVENT_AD_WATCHED_FOR_WITHDRAW = 807 const val EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL = 807
const val EVENT_AD_WATCHED_FOR_WITHDRAW_BIG = 808

View File

@ -0,0 +1,10 @@
package com.gamedog.vididin.beans
data class WatchAdNotifyBean<T>(
var earnMoneyNum: Float = 0F,
var extraData: T,
)

View File

@ -14,7 +14,9 @@ import com.ama.core.architecture.util.AndroidUtil
import com.ama.core.architecture.util.eventbus.NotifyMan import com.ama.core.architecture.util.eventbus.NotifyMan
import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.WatchAdNotifyBean
import com.gamedog.vididin.main.interfaces.OnTabStyleListener import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.manager.WithdrawItemBean
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlin.getValue import kotlin.getValue
import com.vididin.real.money.game.databinding.ActivityWatchAdBinding as ViewBinding import com.vididin.real.money.game.databinding.ActivityWatchAdBinding as ViewBinding
@ -30,8 +32,8 @@ class WatchAdActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
private lateinit var mCountDownTimer: CountDownTimer private lateinit var mCountDownTimer: CountDownTimer
private var mTaskType: Int = 0 private var mWatchType: Int = 0
private var mTaskData: String? = null private var mExtraJsonStr: String? = null
override fun ViewBinding.initViews() { override fun ViewBinding.initViews() {
with(binding) { with(binding) {
@ -58,12 +60,62 @@ class WatchAdActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
private fun notifyAdWatchFinish() { private fun notifyAdWatchFinish() {
NotifyMan.instance().sendEvent(getNotifyEventType(mTaskType), var notifyEventType = 0
if (mTaskData.isNullOrEmpty()) null else AndroidUtil.json2Object<NotifyMan.NotifyData<Any>>(mTaskData!!)) var notifyData: NotifyMan.NotifyData<Any> = NotifyMan.NotifyData()
var earnMoneyNum = 0.1F
var shouldNotifyOneAdWatched = true
if (mTaskType != VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD
&& mTaskType != VidiConst.WATCH_AD_FOR_ZERO_EARN_DIAMOND) { when (mWatchType) {
NotifyMan.instance().sendEvent(VididinEvents.Event_Finish_One_Ad, NotifyMan.NotifyData(1)) VidiConst.WATCH_AD_FOR_WITHDRAW_SMALL -> {
shouldNotifyOneAdWatched = true
notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL
val extraData = mExtraJsonStr?.let {
AndroidUtil.json2Object<Float>(mExtraJsonStr!!)
}
notifyData.mData = WatchAdNotifyBean(earnMoneyNum, extraData)
}
VidiConst.WATCH_AD_FOR_WITHDRAW_BIG -> {
shouldNotifyOneAdWatched = true
notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_BIG
val extraData = mExtraJsonStr?.let {
AndroidUtil.json2Object<WithdrawItemBean>(mExtraJsonStr!!)
}
notifyData.mData = WatchAdNotifyBean(earnMoneyNum, extraData)
}
VidiConst.WATCH_AD_FOR_BOX_TASK -> {
shouldNotifyOneAdWatched = true
notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_BOX_TASK
}
VidiConst.WATCH_AD_FOR_ZERO_EARN_DIAMOND -> {
shouldNotifyOneAdWatched = false
notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_ZEROBUY_EARN_DIAMOND
}
VidiConst.WATCH_AD_FOR_DAILY_WATCH_AD -> {
shouldNotifyOneAdWatched = true
notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_DAILY_WATCH_AD
}
VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD -> {
shouldNotifyOneAdWatched = false
notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD
}
VidiConst.WATCH_AD_FOR_CONVERT_GOLD_2_CASH -> {
shouldNotifyOneAdWatched = true
notifyEventType = VididinEvents.EVENT_AD_WATCHED_FOR_CONVERT_GOLD_2_CASH
}
}
NotifyMan.instance().sendEvent(notifyEventType, notifyData)
if (shouldNotifyOneAdWatched) {
NotifyMan.instance().sendEvent(VididinEvents.EVENT_FINISHED_ONE_AD, NotifyMan.NotifyData(1))
} }
} }
@ -84,45 +136,10 @@ class WatchAdActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnT
override fun readIntent(intent: Intent) { override fun readIntent(intent: Intent) {
super.readIntent(intent) super.readIntent(intent)
mTaskType = intent.getIntExtra(KEY_TASK_TYPE, 0) mWatchType = intent.getIntExtra(KEY_TASK_TYPE, 0)
mTaskData = intent.getStringExtra(KEY_TASK_DATA) mExtraJsonStr = intent.getStringExtra(KEY_TASK_DATA)
} }
private fun getNotifyEventType(taskType: Int) : Int {
when (taskType) {
VidiConst.WATCH_AD_FOR_WITHDRAW_SMALL -> {
return VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW
}
VidiConst.WATCH_AD_FOR_BOX_TASK -> {
return VididinEvents.EVENT_AD_WATCHED_FOR_BOX_TASK
}
VidiConst.WATCH_AD_FOR_ZERO_EARN_DIAMOND -> {
return VididinEvents.EVENT_AD_WATCHED_FOR_ZEROBUY_EARN_DIAMOND
}
VidiConst.WATCH_AD_FOR_DAILY_WATCH_AD -> {
return VididinEvents.EVENT_AD_WATCHED_FOR_DAILY_WATCH_AD
}
VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD -> {
return VididinEvents.EVENT_AD_WATCHED_FOR_EARN_GOLD
}
VidiConst.WATCH_AD_FOR_CONVERT_GOLD_2_CASH -> {
return VididinEvents.EVENT_AD_WATCHED_FOR_CONVERT_GOLD_2_CASH
}
}
return 0
}
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()

View File

@ -13,6 +13,7 @@ import com.ama.core.architecture.util.setOnClickBatch
import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst
import com.vididin.real.money.game.R import com.vididin.real.money.game.R
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.WatchAdNotifyBean
import com.gamedog.vididin.beans.resp.PayoutCheck import com.gamedog.vididin.beans.resp.PayoutCheck
import com.gamedog.vididin.beans.resp.PayoutReply import com.gamedog.vididin.beans.resp.PayoutReply
import com.gamedog.vididin.beans.resp.WithdrawRecord import com.gamedog.vididin.beans.resp.WithdrawRecord
@ -130,13 +131,13 @@ class WithDrawActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
updateUICashTotal() updateUICashTotal()
} }
VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW -> { VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL -> {
var withdrawNum: Float = (data.mData as Double).toFloat() val notifyData: WatchAdNotifyBean<Float> = data.mData as WatchAdNotifyBean<Float>
requestInit(withdrawNum) requestInit(notifyData.extraData)
} }
} }
}, VididinEvents.Event_Account_Cash_Changed, VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW) }, VididinEvents.Event_Account_Cash_Changed, VididinEvents.EVENT_AD_WATCHED_FOR_WITHDRAW_SMALL)
checkTransactionState() checkTransactionState()

View File

@ -51,7 +51,7 @@ class WithDrawSubActivity : AppViewsEmptyViewModelActivity<ViewBinding>() {
} }
private fun gotoWatchAd() { private fun gotoWatchAd() {
val extraData = NotifyMan.NotifyData<Float>(WithdrawManager.EACH_SUB_ITEM_CASH_NUM) val extraData = NotifyMan.NotifyData<WithdrawItemBean>(mCurItem)
Router.WatchAd.startActivity(this, VidiConst.WATCH_AD_FOR_WITHDRAW_BIG, AndroidUtil.object2Json(extraData)) Router.WatchAd.startActivity(this, VidiConst.WATCH_AD_FOR_WITHDRAW_BIG, AndroidUtil.object2Json(extraData))
} }

View File

@ -47,8 +47,7 @@ class WithdrawWatchAdDialog(context: Activity, private var mWithdrawCashNum: Flo
private fun gotoWatchVideo() { private fun gotoWatchVideo() {
val extraData = NotifyMan.NotifyData<Float>(mWithdrawCashNum) Router.WatchAd.startActivity(mActivity, VidiConst.WATCH_AD_FOR_WITHDRAW_SMALL, AndroidUtil.object2Json(mWithdrawCashNum))
Router.WatchAd.startActivity(mActivity, VidiConst.WATCH_AD_FOR_WITHDRAW_SMALL, AndroidUtil.object2Json(extraData))
} }

View File

@ -27,7 +27,7 @@ class BoxTaskHelper: BaseTaskHelper<TaskStateBoxRoot, BoxTaskRoot>() {
init { init {
registerEvents( { eventData-> registerEvents( { eventData->
when (eventData?.mEventType) { when (eventData?.mEventType) {
VididinEvents.Event_Finish_One_Ad -> { VididinEvents.EVENT_FINISHED_ONE_AD -> {
handleEvents(BOX_SUB_TASK_TYPE_AD) handleEvents(BOX_SUB_TASK_TYPE_AD)
} }
@ -44,7 +44,7 @@ class BoxTaskHelper: BaseTaskHelper<TaskStateBoxRoot, BoxTaskRoot>() {
} }
} }
}, VididinEvents.Event_Finish_One_Ad, VididinEvents.Event_Finish_One_Video, }, VididinEvents.EVENT_FINISHED_ONE_AD, VididinEvents.Event_Finish_One_Video,
VididinEvents.Event_Finish_One_Sign, VididinEvents.Event_Finish_One_Zerobuy) VididinEvents.Event_Finish_One_Sign, VididinEvents.Event_Finish_One_Zerobuy)
} }

View File

@ -16,7 +16,7 @@ class DailyWatchAdTaskHelper : BaseDailyTaskHelper<TaskStateWatchAd>() {
registerEvents( { eventData-> registerEvents( { eventData->
val watchedAdNum: Int = eventData?.mData as Int val watchedAdNum: Int = eventData?.mData as Int
handleOneAdWatched(watchedAdNum) handleOneAdWatched(watchedAdNum)
}, VididinEvents.Event_Finish_One_Ad) }, VididinEvents.EVENT_FINISHED_ONE_AD)
} }
override fun loadTaskFromSp() { override fun loadTaskFromSp() {