Commit 00cfa807 authored by wanglei's avatar wanglei Committed by songjianyu

【修复】 广告问题

parent ad432fec
...@@ -23,6 +23,8 @@ abstract class AdEvent { ...@@ -23,6 +23,8 @@ abstract class AdEvent {
var adUnit: String = "" var adUnit: String = ""
var from: String = "" var from: String = ""
val reqId = UUID.randomUUID().toString() val reqId = UUID.randomUUID().toString()
var isUnLimit: Boolean = false
fun adPrepareShow() { fun adPrepareShow() {
val obj1 = JSONObject() val obj1 = JSONObject()
......
...@@ -8,6 +8,7 @@ import androidx.annotation.LayoutRes ...@@ -8,6 +8,7 @@ import androidx.annotation.LayoutRes
import com.applovin.sdk.AppLovinMediationProvider import com.applovin.sdk.AppLovinMediationProvider
import com.applovin.sdk.AppLovinSdk import com.applovin.sdk.AppLovinSdk
import com.applovin.sdk.AppLovinSdkInitializationConfiguration import com.applovin.sdk.AppLovinSdkInitializationConfiguration
import com.base.appzxhy.business.ads.admob.AdOpenMgr
import com.easy.clean.BuildConfig import com.easy.clean.BuildConfig
import com.easy.clean.GlobalConfig import com.easy.clean.GlobalConfig
import com.easy.clean.MyApplication import com.easy.clean.MyApplication
...@@ -16,7 +17,6 @@ import com.easy.clean.bean.config.ConfigBean.Companion.configBean ...@@ -16,7 +17,6 @@ import com.easy.clean.bean.config.ConfigBean.Companion.configBean
import com.easy.clean.business.ads.admob.AdBannerMgr import com.easy.clean.business.ads.admob.AdBannerMgr
import com.easy.clean.business.ads.admob.AdInterMgr import com.easy.clean.business.ads.admob.AdInterMgr
import com.easy.clean.business.ads.admob.AdNativeMgr import com.easy.clean.business.ads.admob.AdNativeMgr
import com.easy.clean.business.ads.admob.AdOpenMgr
import com.easy.clean.business.ads.admob.AdmobEvent import com.easy.clean.business.ads.admob.AdmobEvent
import com.easy.clean.business.ads.applovin.AdMaxEvent import com.easy.clean.business.ads.applovin.AdMaxEvent
import com.easy.clean.business.ads.applovin.MaxInsertMgr import com.easy.clean.business.ads.applovin.MaxInsertMgr
...@@ -181,12 +181,14 @@ object AdsMgr { ...@@ -181,12 +181,14 @@ object AdsMgr {
val from = activity::class.java.simpleName val from = activity::class.java.simpleName
if (adsConfigBean.adSwitch) { if (adsConfigBean.adSwitch) {
val admobEvent = AdmobEvent("openAd", from)
admobEvent.isUnLimit = isUnLimit
if (isAdmobInit) { if (isAdmobInit) {
adOpenMgr.show(activity, isUnLimit, AdmobEvent("openAd", from), showCallBack) adOpenMgr.show(activity, admobEvent, showCallBack)
} else { } else {
admobInitCallBack = { admobInitCallBack = {
} }
adOpenMgr.show(activity, isUnLimit, AdmobEvent("openAd", from), showCallBack) adOpenMgr.show(activity, admobEvent, showCallBack)
} }
} else { } else {
if (isMaxInit) { if (isMaxInit) {
......
...@@ -42,7 +42,7 @@ class AdBannerMgr { ...@@ -42,7 +42,7 @@ class AdBannerMgr {
adView = AdView(parent.context) adView = AdView(parent.context)
parent.addView(adView) parent.addView(adView)
adView?.onPaidEventListener = AdmobEvent.EventOnPaidEventListener(adView) adView?.onPaidEventListener = AdmobOnPaidEventListener(adView, admobEvent.scope)
listener = ViewTreeObserver.OnGlobalLayoutListener { listener = ViewTreeObserver.OnGlobalLayoutListener {
val screenPixelDensity = parent.context.resources.displayMetrics.density val screenPixelDensity = parent.context.resources.displayMetrics.density
......
...@@ -18,6 +18,9 @@ import com.google.android.gms.ads.LoadAdError ...@@ -18,6 +18,9 @@ import com.google.android.gms.ads.LoadAdError
import com.google.android.gms.ads.interstitial.InterstitialAd import com.google.android.gms.ads.interstitial.InterstitialAd
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
import kotlin.div
import kotlin.text.get
import kotlin.text.toInt
/** /**
...@@ -150,7 +153,7 @@ class AdInterMgr { ...@@ -150,7 +153,7 @@ class AdInterMgr {
} }
(adEvent as AdmobEvent).pullAd(ad.responseInfo) (adEvent as AdmobEvent).pullAd(ad.responseInfo)
LimitUtils.addRequestNum() LimitUtils.addRequestNum()
ad.onPaidEventListener = AdmobEvent.EventOnPaidEventListener(ad) ad.onPaidEventListener = AdmobOnPaidEventListener(adEvent.scope)
} }
override fun onAdFailedToLoad(loadAdError: LoadAdError) { override fun onAdFailedToLoad(loadAdError: LoadAdError) {
......
...@@ -52,7 +52,7 @@ class AdNativeMgr { ...@@ -52,7 +52,7 @@ class AdNativeMgr {
).forNativeAd { nativeAd -> ).forNativeAd { nativeAd ->
lastTime = System.currentTimeMillis() lastTime = System.currentTimeMillis()
nativeAd.setOnPaidEventListener(AdmobEvent.EventOnPaidEventListener(nativeAd)) nativeAd.setOnPaidEventListener(AdmobOnPaidEventListener(nativeAd, admobEvent.scope))
currentNativeAd = nativeAd currentNativeAd = nativeAd
admobEvent.pullAd(nativeAd.responseInfo) admobEvent.pullAd(nativeAd.responseInfo)
......
package com.easy.clean.business.ads.admob package com.base.appzxhy.business.ads.admob
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
...@@ -9,6 +9,9 @@ import com.easy.clean.business.ads.AdState ...@@ -9,6 +9,9 @@ import com.easy.clean.business.ads.AdState
import com.easy.clean.business.ads.AdsShowCallBack import com.easy.clean.business.ads.AdsShowCallBack
import com.easy.clean.business.ads.AdsType import com.easy.clean.business.ads.AdsType
import com.easy.clean.business.ads.LimitUtils import com.easy.clean.business.ads.LimitUtils
import com.easy.clean.business.ads.admob.AdmobEvent
import com.easy.clean.business.ads.admob.AdmobOnPaidEventListener
import com.easy.clean.utils.LogEx
import com.google.android.gms.ads.AdError import com.google.android.gms.ads.AdError
import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.FullScreenContentCallback import com.google.android.gms.ads.FullScreenContentCallback
...@@ -27,11 +30,11 @@ class AdOpenMgr { ...@@ -27,11 +30,11 @@ class AdOpenMgr {
private var showCallBack: AdsShowCallBack? = null private var showCallBack: AdsShowCallBack? = null
fun show(activity: Activity, isUnLimit: Boolean, adEvent: AdEvent, showCallBack: AdsShowCallBack?) { fun show(activity: Activity, adEvent: AdEvent, showCallBack: AdsShowCallBack?) {
if (activity.isFinishing || activity.isDestroyed) { if (activity.isFinishing || activity.isDestroyed) {
return return
} }
if (!isUnLimit) { if (!adEvent.isUnLimit) {
if (!LimitUtils.isAdShow(AdsType.OPEN, adEvent)) { if (!LimitUtils.isAdShow(AdsType.OPEN, adEvent)) {
showCallBack?.failed() showCallBack?.failed()
return return
...@@ -53,7 +56,9 @@ class AdOpenMgr { ...@@ -53,7 +56,9 @@ class AdOpenMgr {
val needLoad = adState.currentAd == null || !adAvailable() val needLoad = adState.currentAd == null || !adAvailable()
if (needLoad) { if (needLoad) {
if (!adState.loadingAd) { if (!adState.loadingAd) {
loadAd(activity, adEvent, isUnLimit, true) loadAd(activity, adEvent) {
showReadyAd(adEvent)
}
} }
} else { } else {
showReadyAd(adEvent) showReadyAd(adEvent)
...@@ -62,10 +67,16 @@ class AdOpenMgr { ...@@ -62,10 +67,16 @@ class AdOpenMgr {
private fun showReadyAd(adEvent: AdEvent) { private fun showReadyAd(adEvent: AdEvent) {
val ac = adState.activityRef?.get()
if (ac == null || ac.isFinishing || ac.isDestroyed) {
LogEx.logDebug(TAG, "showReadyAd ac=null isFinishing isDestroyed")
return
}
adState.currentAd?.run { adState.currentAd?.run {
fullScreenContentCallback = object : FullScreenContentCallback() { fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdShowedFullScreenContent() { override fun onAdShowedFullScreenContent() {
val ac = adState.activityRef?.get()
(adEvent as AdmobEvent).showAd(this@run.responseInfo, ac) (adEvent as AdmobEvent).showAd(this@run.responseInfo, ac)
showCallBack?.show() showCallBack?.show()
...@@ -114,11 +125,10 @@ class AdOpenMgr { ...@@ -114,11 +125,10 @@ class AdOpenMgr {
fun loadAd( fun loadAd(
context: Context, context: Context,
adEvent: AdEvent, adEvent: AdEvent,
isUnLimit: Boolean = false, loadCallBack: (() -> Unit)? = null
isShow: Boolean = false,
) { ) {
if (!isUnLimit) { if (!adEvent.isUnLimit) {
if (!LimitUtils.isAdShow(AdsType.OPEN, adEvent)) { if (!LimitUtils.isAdShow(AdsType.OPEN, adEvent)) {
this.showCallBack?.close() this.showCallBack?.close()
this.showCallBack = null this.showCallBack = null
...@@ -127,7 +137,6 @@ class AdOpenMgr { ...@@ -127,7 +137,6 @@ class AdOpenMgr {
} }
} }
adEvent.adPulStart() adEvent.adPulStart()
AppOpenAd.load( AppOpenAd.load(
...@@ -137,13 +146,10 @@ class AdOpenMgr { ...@@ -137,13 +146,10 @@ class AdOpenMgr {
object : AppOpenAd.AppOpenAdLoadCallback() { object : AppOpenAd.AppOpenAdLoadCallback() {
override fun onAdLoaded(appOpenAd: AppOpenAd) { override fun onAdLoaded(appOpenAd: AppOpenAd) {
adState.onAdLoaded(appOpenAd) adState.onAdLoaded(appOpenAd)
if (this@AdOpenMgr.showCallBack != null || isShow) { loadCallBack?.invoke()
showReadyAd(adEvent)
}
(adEvent as AdmobEvent).pullAd(appOpenAd.responseInfo) (adEvent as AdmobEvent).pullAd(appOpenAd.responseInfo)
appOpenAd.onPaidEventListener = AdmobEvent.EventOnPaidEventListener(appOpenAd) appOpenAd.onPaidEventListener = AdmobOnPaidEventListener(appOpenAd, adEvent.scope)
LimitUtils.addRequestNum() LimitUtils.addRequestNum()
} }
override fun onAdFailedToLoad(loadAdError: LoadAdError) { override fun onAdFailedToLoad(loadAdError: LoadAdError) {
......
...@@ -40,7 +40,7 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsB ...@@ -40,7 +40,7 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsB
binding.tvCleanedUp.text = cleanedSize.toFormatSize() binding.tvCleanedUp.text = cleanedSize.toFormatSize()
binding.tvVersion.text = "v${BuildConfig.VERSION_NAME}" binding.tvVersion.text = "v${BuildConfig.VERSION_NAME}"
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_native_medium) AdsMgr.showNative(binding.flAd, R.layout.layout_admob_native_custom)
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
binding.tvToken.visibility = View.VISIBLE binding.tvToken.visibility = View.VISIBLE
......
...@@ -65,15 +65,16 @@ ...@@ -65,15 +65,16 @@
<com.easy.clean.business.ads.NativeParentView <com.easy.clean.business.ads.NativeParentView
android:id="@+id/flAd" android:id="@+id/flAd"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="180dp" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:layout_marginHorizontal="12dp"
app:layout_constraintTop_toBottomOf="@id/cl_top"> app:layout_constraintTop_toBottomOf="@id/cl_top">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:scaleType="fitXY" android:scaleType="fitXY"
android:src="@drawable/img_ad_medium_zhanwei" android:src="@drawable/zhanwei1"
tools:ignore="ContentDescription,ImageContrastCheck" /> tools:ignore="ContentDescription,ImageContrastCheck" />
</com.easy.clean.business.ads.NativeParentView> </com.easy.clean.business.ads.NativeParentView>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment