banner 基类统一设置

This commit is contained in:
renhaoting 2025-12-18 10:41:11 +08:00
parent ec9dabdc0e
commit b5fc00b996
4 changed files with 38 additions and 57 deletions

View File

@ -1,7 +1,5 @@
package com.gamedog.vididin.main
import android.app.Activity
import android.content.Intent
import android.content.IntentFilter
@ -13,7 +11,6 @@ import androidx.viewpager2.widget.ViewPager2
import android.view.LayoutInflater
import androidx.activity.addCallback
import androidx.activity.viewModels
import androidx.lifecycle.lifecycleScope
import com.ama.core.architecture.appBase.AppViewsActivity
import com.ama.core.architecture.appBase.OnFragmentBackgroundListener
import com.ama.core.architecture.ext.toast
@ -29,10 +26,7 @@ import com.gamedog.vididin.adapter.MainViewPagerAdapter
import com.gamedog.vididin.main.fragments.task.DailySignSuccessDialog
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.manager.DateChangeReceiver
import com.remax.bill.ads.AdResult
import com.remax.bill.ads.ext.AdShowExt
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
import kotlin.getValue
import com.vididin.real.money.game.databinding.ActivityMainBinding as ViewBinding
import com.gamedog.vididin.main.MainUiState as UiState
@ -59,8 +53,6 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
override fun ViewBinding.initViews() {
enableBannerAd(binding.adContainer)
navigatorAdapter = MainTabsAdapter(
this@MainActivity, viewPager2, fragmentStateAdapter, magicIndicator
)

View File

@ -24,17 +24,17 @@
},
"paid": {
"app_open": {
"max_daily_show": 20,
"max_daily_show": 200,
"max_daily_click": 10,
"min_interval": 0
},
"interstitial": {
"max_daily_show": 20,
"max_daily_show": 200,
"max_daily_click": 10,
"min_interval": 0
},
"native": {
"max_daily_show": 20,
"max_daily_show": 200,
"max_daily_click": 10,
"min_interval": 0
},

View File

@ -10,9 +10,6 @@ import com.ama.core.architecture.base.views.BaseViewsActivity
import com.ama.core.architecture.util.eventbus.NotifyMan
import com.ama.core.architecture.util.state.createAppStateView
import com.ama.core.designsystem.widget.interfaces.LoadingDialog
import com.remax.bill.ads.AdResult
import com.remax.bill.ads.ext.AdShowExt
import kotlinx.coroutines.launch
abstract class AppViewsActivity<Binding : ViewBinding, UiState : Any, ViewModel : BaseViewModel<UiState>> :
@ -34,10 +31,6 @@ abstract class AppViewsActivity<Binding : ViewBinding, UiState : Any, ViewModel
NotifyMan.instance().register(mEventCallback, *eventTypes)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
tryShowAdBanner()
}
override fun onDestroy() {
super.onDestroy()
@ -70,33 +63,4 @@ abstract class AppViewsActivity<Binding : ViewBinding, UiState : Any, ViewModel
}
private var mAdContainer: ViewGroup? = null
fun tryShowAdBanner() {
mAdContainer?.let {
lifecycleScope.launch {
try {
when (AdShowExt.showBannerAd(this@AppViewsActivity, it)) {
is AdResult.Success<*> -> {
}
is AdResult.Failure -> {
}
AdResult.Loading -> {
}
}
} catch (e: Exception) {
}
}
}
}
protected fun enableBannerAd(adContainer: ViewGroup) {
mAdContainer = adContainer
}
}

View File

@ -2,7 +2,6 @@ package com.ama.core.architecture.base.views
import android.content.Intent
import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
@ -25,6 +24,8 @@ import com.ama.core.architecture.stateview.interfaces.DefaultStateViewManager
import com.ama.core.architecture.stateview.util.initLoadStateUiStateCollect
import com.ama.core.designsystem.widget.interfaces.LoadingDialog
import com.ama.core.designsystem.widget.interfaces.StateView
import com.remax.bill.ads.AdResult
import com.remax.bill.ads.ext.AdShowExt
import kotlinx.coroutines.launch
@ -33,6 +34,7 @@ abstract class BaseViewsActivity<Binding : ViewBinding, UiState : Any,
ViewModel : BaseViewModel<UiState>> :
BaseActivity(), ViewBindingActivity<Binding, UiState>, ViewModelOwner<UiState, ViewModel>, DefaultStateViewManager, MessageCollectorOwner {
private lateinit var mFinalRootView: ViewGroup
private var mAdContainer: ViewGroup? = null
protected open var mEnableBannerAd = true
override val binding: Binding by lazy { inflateViewBinding(layoutInflater) }
@ -71,8 +73,36 @@ abstract class BaseViewsActivity<Binding : ViewBinding, UiState : Any,
binding.initListeners()
binding.initBaseObservers()
binding.initObservers()
tryShowBannerAd()
}
private fun tryShowBannerAd() {
if (mEnableBannerAd) {
mAdContainer?.let {
lifecycleScope.launch {
try {
when (AdShowExt.showBannerAd(this@BaseViewsActivity, it)) {
is AdResult.Success<*> -> {
}
is AdResult.Failure -> {
}
AdResult.Loading -> {
}
}
} catch (e: Exception) {
}
}
}
}
}
override fun readIntent(intent: Intent) {
}
@ -128,17 +158,17 @@ abstract class BaseViewsActivity<Binding : ViewBinding, UiState : Any,
private fun getContentView(): View {
if (mEnableBannerAd) {
mFinalRootView = RelativeLayout(this)
val adContainer = FrameLayout(this).apply {
layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,100).apply {
mAdContainer = FrameLayout(this).apply {
layoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.WRAP_CONTENT).apply {
addRule(RelativeLayout.ALIGN_PARENT_BOTTOM)
}
setBackgroundResource(R.color.gray_3)
id = ViewCompat.generateViewId()
}
mFinalRootView.addView(adContainer)
mFinalRootView.addView(mAdContainer)
val bindingRootLayoutParams = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT).apply {
addRule(RelativeLayout.ABOVE, adContainer.id)
addRule(RelativeLayout.ABOVE, mAdContainer!!.id)
}
mFinalRootView.addView(binding.root, bindingRootLayoutParams)
} else {
@ -147,10 +177,5 @@ abstract class BaseViewsActivity<Binding : ViewBinding, UiState : Any,
return mFinalRootView
}
private fun addShowAdView() {
}
}