Commit 19e872a6 authored by wanglei's avatar wanglei

...插页广告

parent f3621897
......@@ -2,6 +2,7 @@ package com.base.datarecovery.ads.max
import android.annotation.SuppressLint
import android.app.Activity
import android.app.Dialog
import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdListener
import com.applovin.mediation.MaxError
......@@ -27,11 +28,6 @@ object AdMaxInterstitialUtils {
private var interLoadTime = Long.MAX_VALUE
private var onHidden: (() -> Unit)? = null
private var loadingListener: (() -> Unit)? = null
private var retryAttempt = 0
@SuppressLint("StaticFieldLeak")
private var customDialog: CustomDialog? = null
private var activityString: String = ""
private fun setListener(activity: Activity) {
......@@ -47,7 +43,6 @@ object AdMaxInterstitialUtils {
loadingListener = null
interLoadTime = System.currentTimeMillis()
retryAttempt = 0
val reqId = UUID.randomUUID().toString()
AdMaxEvent.pullAd(p0, "interAd", reqId = reqId)
}
......@@ -57,14 +52,9 @@ object AdMaxInterstitialUtils {
val reqId = UUID.randomUUID().toString()
AdMaxEvent.pullAd(null, "interAd", reqId = reqId, error = p1.message, code = p1.code)
AdDisplayUtils.getInstance().incrementAdRequestFailCount()
retryAttempt++
LogEx.logDebug(TAG, "onAdLoadFailed retryAttempt=$retryAttempt")
if (retryAttempt == 1) {
customDialog?.dismiss()
onHidden?.invoke()
onHidden = null
retryAttempt = 0
}
loadingListener?.invoke()
loadingListener = null
}
override fun onAdDisplayed(p0: MaxAd) {
......@@ -90,6 +80,8 @@ object AdMaxInterstitialUtils {
override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) {
LogEx.logDebug(TAG, "onAdDisplayFailed")
onHidden?.invoke()
onHidden = null
val obj2 = JSONObject()
obj2.put("code", p1.code)
obj2.put("reason", p1.message)
......@@ -129,9 +121,9 @@ object AdMaxInterstitialUtils {
obj1.put("ad_unit", "interAd")
EventUtils.event("ad_prepare_show", ext = obj1)
this.onHidden = onHidden
if (interstitialAd?.isReady == true) {
LogEx.logDebug(TAG, "有缓存直接播放。")
this.onHidden = onHidden
interstitialAd?.showAd(activity)
} else {
LogEx.logDebug(TAG, "展示广告时,没有缓存,需要拉取。")
......@@ -139,9 +131,22 @@ object AdMaxInterstitialUtils {
obj2.put("reason", "no ad")
obj2.put("ad_unit", "interAd")
EventUtils.event("ad_show_error", ext = obj2)
loadInterstitialAd(activity)
LogEx.logDebug(TAG, "isReady=false")
showAdDialogAndLoadInterstitial(activity)
val loaded = loadInterstitialAd(activity)
if (loaded) {
LogEx.logDebug(TAG, "loaded=true")
val dialog = showAdDialogAndLoadInterstitial(activity)
loadingListener = {
dialog?.dismiss()
if (interstitialAd?.isReady == true) {
interstitialAd?.showAd(activity)
} else {
onHidden?.invoke()
}
}
} else {
LogEx.logDebug(TAG, "loaded=false")
onHidden?.invoke()
}
}
}
......@@ -153,27 +158,24 @@ object AdMaxInterstitialUtils {
private fun showAdDialogAndLoadInterstitial(
activity: Activity,
) {
): Dialog? {
var customDialog: Dialog? = null
if (!activity.isFinishing && !activity.isDestroyed) {
customDialog = CustomDialog(activity, R.layout.dialog_ad_loading)
// 设置对话框的样式和内容
customDialog?.show()
customDialog.show()
}
loadingListener = {
customDialog?.dismiss()
interstitialAd?.showAd(activity)
return customDialog
}
}
fun loadInterstitialAd(activity: Activity) {
fun loadInterstitialAd(activity: Activity): Boolean {
setListener(activity)
if (!AdDisplayUtils.getInstance().shouldShowAd("interAd")) {
return
return false
}
if (interstitialAd?.isReady == true) {
return
return false
}
if (isAdInit.get()) {
LogEx.logDebug(TAG, "loadInterstitialAd")
......@@ -183,7 +185,9 @@ object AdMaxInterstitialUtils {
obj.put("ad_type", "interAd")
EventUtils.event("ad_pull_start", ext = obj)
interstitialAd?.loadAd()
return true
}
return false
}
......
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