观看ad UI监听及更新

This commit is contained in:
renhaoting 2025-12-02 13:58:21 +08:00
parent 6f650df200
commit 32d201030d
6 changed files with 50 additions and 12 deletions

View File

@ -18,7 +18,8 @@ object VididinEvents {
const val Event_AD_TASK_TYPE_Convert_Gold_2_Cash = 800 const val Event_AD_TASK_TYPE_Convert_Gold_2_Cash = 800
const val Event_AD_TASK_TYPE_Watch_Ad_For_Gold = 801 const val Event_AD_TASK_TYPE_Watch_Ad_For_Gold = 801
const val Event_AD_TASK_TYPE_Withdraw = 802 const val Event_AD_TASK_TYPE_Watch_Ad_Daily = 802
const val Event_AD_TASK_TYPE_Complement = 803 const val Event_AD_TASK_TYPE_Withdraw = 803
const val Event_AD_TASK_TYPE_Complement = 804
} }

View File

@ -7,7 +7,7 @@ import com.gamedog.vididin.databinding.DialogWatchVideoBinding
import com.gamedog.vididin.router.Router import com.gamedog.vididin.router.Router
class WatchVideoDialog(context: Activity, private val mTaskType: Int, private val mTaskDataJson: String?) : BindingDialog<DialogWatchVideoBinding>(context, DialogWatchVideoBinding::inflate) { class WatchAdDialog(context: Activity, private val mTaskType: Int, private val mTaskDataJson: String?) : BindingDialog<DialogWatchVideoBinding>(context, DialogWatchVideoBinding::inflate) {
init { init {
build() build()

View File

@ -22,7 +22,7 @@ import com.gamedog.vididin.R
import com.gamedog.vididin.VidiConst import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.core.login.login.AccountManager import com.gamedog.vididin.core.login.login.AccountManager
import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.WatchAdDialog
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
import com.gamedog.vididin.main.fragments.task.widget.DailyTaskItemView import com.gamedog.vididin.main.fragments.task.widget.DailyTaskItemView
@ -47,6 +47,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
override var isBackgroundBright: Boolean = true override var isBackgroundBright: Boolean = true
private val mDailyWatchVideoTaskViewList = mutableListOf<DailyTaskItemView>() private val mDailyWatchVideoTaskViewList = mutableListOf<DailyTaskItemView>()
private val mDailyWatchVideoAdViewList = mutableListOf<DailyTaskItemView>()
override fun inflateViewBinding( override fun inflateViewBinding(
@ -78,7 +79,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
llTaskWatchVideo->{ llTaskWatchVideo->{
WatchVideoDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_For_Gold, null).show() WatchAdDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_For_Gold, null).show()
} }
llTaskGame->{ llTaskGame->{
@ -90,7 +91,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
tvWatchVideoForConvertGoldToCash->{ tvWatchVideoForConvertGoldToCash->{
WatchVideoDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Convert_Gold_2_Cash, null).show() WatchAdDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Convert_Gold_2_Cash, null).show()
} }
tvWithdraw->{ tvWithdraw->{
@ -142,7 +143,33 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
private fun addDailySubTasks() { private fun addDailySubTasks() {
//1. 阶梯广告
val dailyWatchAdTask = TaskManager.instance().getDailyAdTask()
if (dailyWatchAdTask != null && dailyWatchAdTask.status == "active"
&& dailyWatchAdTask.reward_details.isNotEmpty()) {
dailyWatchAdTask.reward_details.forEachIndexed { index, detail ->
val watchTaskItemView = DailyTaskItemView(requireActivity())
watchTaskItemView.setActionFun {
gotoDailyWatchAd()
}
mDailyWatchVideoAdViewList.add(watchTaskItemView)
binding?.dailyTasksContainer!!.run {
watchTaskItemView.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title,
detail.target_count, detail.value, if (index == 0) R.string.resgatar else R.string.go_and_do)
addView(watchTaskItemView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
if (true) {
val separateLine = View(requireActivity())
separateLine.setBackgroundResource(R.color.gray_f2)
addView(separateLine, LinearLayout.LayoutParams.MATCH_PARENT, ResUtil.getPixelSize(R.dimen.dp1))
}
}
}
}
//2. 阶梯视频
val dailyWatchVideoTask = TaskManager.instance().getDailyVideoTask() val dailyWatchVideoTask = TaskManager.instance().getDailyVideoTask()
if (dailyWatchVideoTask != null && dailyWatchVideoTask.status == "active" if (dailyWatchVideoTask != null && dailyWatchVideoTask.status == "active"
&& dailyWatchVideoTask.reward_details.isNotEmpty()) { && dailyWatchVideoTask.reward_details.isNotEmpty()) {
@ -150,7 +177,7 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
dailyWatchVideoTask.reward_details.forEachIndexed {index, detail -> dailyWatchVideoTask.reward_details.forEachIndexed {index, detail ->
val watchTaskItemView = DailyTaskItemView(requireActivity()) val watchTaskItemView = DailyTaskItemView(requireActivity())
watchTaskItemView.setActionFun { watchTaskItemView.setActionFun {
gotoWithVideo() gotoWatchVideo()
} }
mDailyWatchVideoTaskViewList.add(watchTaskItemView) mDailyWatchVideoTaskViewList.add(watchTaskItemView)
@ -185,7 +212,10 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
} }
private fun updateDailyWatchAdUI() { private fun updateDailyWatchAdUI() {
binding?.tvAdWatchRewardNum?.text = TaskManager.instance().dailyWatchAdStatus().getAdTaskShowingText() val statusBean = TaskManager.instance().dailyWatchAdStatus().getStatus()
mDailyWatchVideoAdViewList.forEachIndexed { index, view ->
view.updateProgress(statusBean.getTodayWatchedAdCount())
}
} }
private fun updateUIGoldTotal() { private fun updateUIGoldTotal() {
@ -276,9 +306,13 @@ class TasksFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnTab
}) })
} }
private fun gotoWithVideo() { private fun gotoWatchVideo() {
Router.Mine.createMineFragment() Router.Mine.createMineFragment()
} }
private fun gotoDailyWatchAd() {
WatchAdDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_Daily, null).show()
}
} }

View File

@ -16,7 +16,7 @@ import com.ama.core.common.widget.PopMenuIconView
import com.gamedog.vididin.R import com.gamedog.vididin.R
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.beans.YoutubeVideo import com.gamedog.vididin.beans.YoutubeVideo
import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.WatchAdDialog
import com.gamedog.vididin.router.Router import com.gamedog.vididin.router.Router
import com.gamedog.vididin.widget.MyPlayerControlView import com.gamedog.vididin.widget.MyPlayerControlView
import com.gamedog.vididin.youtubestatistic.TickerTimer import com.gamedog.vididin.youtubestatistic.TickerTimer
@ -63,7 +63,7 @@ class HomeItemFragment : AppViewsEmptyViewModelFragment<ViewBinding>() {
Router.Benefit.startActivity(requireActivity()) Router.Benefit.startActivity(requireActivity())
}, },
PopMenuIconView.MenuItem(R.mipmap.home_menu_2) { PopMenuIconView.MenuItem(R.mipmap.home_menu_2) {
WatchVideoDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_For_Gold, null).show() WatchAdDialog(requireActivity(), VididinEvents.Event_AD_TASK_TYPE_Watch_Ad_For_Gold, null).show()
}, },
PopMenuIconView.MenuItem(R.mipmap.home_menu_3) { PopMenuIconView.MenuItem(R.mipmap.home_menu_3) {

View File

@ -47,6 +47,9 @@ class DailyWatchAdTaskHelper : BaseTaskHelper<TaskStateWatchAd>() {
return DateUtil.isToday(stateBean.todayMs) return DateUtil.isToday(stateBean.todayMs)
} }
fun getTodayWatchedCount(): Int {
return mStateBean.getTodayWatchedAdCount()
}
private fun handleOneAdWatched(newAdWatchedNum: Int) { private fun handleOneAdWatched(newAdWatchedNum: Int) {
mStateBean.run { mStateBean.run {

View File

@ -241,7 +241,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:layout_marginTop="-20dp" android:layout_marginTop="-20dp"
android:text="0" android:text="200"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="10sp" android:textSize="10sp"
android:drawablePadding="3dp" android:drawablePadding="3dp"