Commit 12a612cd authored by wanglei's avatar wanglei

开屏广告

parent b63b9639
...@@ -9,6 +9,7 @@ import com.base.filerecoveryrecyclebin.adapter.MediaAdapter ...@@ -9,6 +9,7 @@ import com.base.filerecoveryrecyclebin.adapter.MediaAdapter
import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils.showInterAdSp import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils.showInterAdSp
import com.base.filerecoveryrecyclebin.ads.admob.AdmobNativeUtils import com.base.filerecoveryrecyclebin.ads.admob.AdmobNativeUtils
import com.base.filerecoveryrecyclebin.ads.max.AdMaxInterstitialUtils
import com.base.filerecoveryrecyclebin.bean.MediaBean import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.bean.MediaTimeBean import com.base.filerecoveryrecyclebin.bean.MediaTimeBean
import com.base.filerecoveryrecyclebin.databinding.ActivityRepeatBinding import com.base.filerecoveryrecyclebin.databinding.ActivityRepeatBinding
...@@ -73,8 +74,14 @@ class RepeatActivity : BaseActivity<ActivityRepeatBinding>() { ...@@ -73,8 +74,14 @@ class RepeatActivity : BaseActivity<ActivityRepeatBinding>() {
onBackPressedDispatcher.addCallback { onBackPressedDispatcher.addCallback {
showExitFunctionDialog { showExitFunctionDialog {
if (it) { if (it) {
AdmobInterstitialUtils.showInterstitialAd(this@RepeatActivity) { if (ConfigHelper.admobTrueMaxFlase) {
finishToMain() AdmobInterstitialUtils.showInterstitialAd(this@RepeatActivity) {
finishToMain()
}
} else {
AdMaxInterstitialUtils.showInterstitialAd(this@RepeatActivity) {
finishToMain()
}
} }
} else { } else {
finishToMain() finishToMain()
......
...@@ -4,8 +4,10 @@ import android.content.Intent ...@@ -4,8 +4,10 @@ import android.content.Intent
import android.widget.Toast import android.widget.Toast
import androidx.activity.addCallback import androidx.activity.addCallback
import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils import com.base.filerecoveryrecyclebin.ads.admob.AdmobInterstitialUtils
import com.base.filerecoveryrecyclebin.ads.max.AdMaxInterstitialUtils
import com.base.filerecoveryrecyclebin.databinding.ActivityRepeatAnimationBinding import com.base.filerecoveryrecyclebin.databinding.ActivityRepeatAnimationBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.ConfigHelper
import kotlin.random.Random import kotlin.random.Random
class RepeatAnimationActivity : BaseActivity<ActivityRepeatAnimationBinding>() { class RepeatAnimationActivity : BaseActivity<ActivityRepeatAnimationBinding>() {
...@@ -17,9 +19,16 @@ class RepeatAnimationActivity : BaseActivity<ActivityRepeatAnimationBinding>() { ...@@ -17,9 +19,16 @@ class RepeatAnimationActivity : BaseActivity<ActivityRepeatAnimationBinding>() {
override fun initView() { override fun initView() {
binding.root.postDelayed({ binding.root.postDelayed({
AdmobInterstitialUtils.showInterstitialAd(this) { if (ConfigHelper.admobTrueMaxFlase) {
startActivity(Intent(this, RepeatActivity::class.java)) AdmobInterstitialUtils.showInterstitialAd(this) {
finish() startActivity(Intent(this, RepeatActivity::class.java))
finish()
}
} else {
AdMaxInterstitialUtils.showInterstitialAd(this) {
startActivity(Intent(this, RepeatActivity::class.java))
finish()
}
} }
}, Random.nextLong(3000, 4500)) }, Random.nextLong(3000, 4500))
} }
......
...@@ -56,14 +56,14 @@ object AdmobInterstitialUtils { ...@@ -56,14 +56,14 @@ object AdmobInterstitialUtils {
if (activity.isFinishing || activity.isDestroyed) { if (activity.isFinishing || activity.isDestroyed) {
return return
} }
val obj = JSONObject() val obj1 = JSONObject()
obj.put("ad_unit", "interAd") obj1.put("ad_unit", "interAd")
EventUtils.event("ad_prepare_show", ext = obj) EventUtils.event("ad_prepare_show", ext = obj1)
if (isAdExpired()) { if (isAdExpired()) {
val obj = JSONObject() val obj2 = JSONObject()
obj.put("ad_unit", "interAd") obj2.put("ad_unit", "interAd")
EventUtils.event("ad_expire", ext = obj) EventUtils.event("ad_expire", ext = obj2)
interAd = null interAd = null
loadInterstitialAd(activity) loadInterstitialAd(activity)
onHidden?.invoke() onHidden?.invoke()
......
package com.base.filerecoveryrecyclebin.ads.max
import android.app.Activity
import android.os.Handler
import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdListener
import com.applovin.mediation.MaxError
import com.applovin.mediation.ads.MaxInterstitialAd
import com.base.filerecoveryrecyclebin.ads.AdDisplayUtils
import com.base.filerecoveryrecyclebin.help.ConfigHelper
import com.base.filerecoveryrecyclebin.utils.EventUtils
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.json.JSONObject
import java.util.concurrent.TimeUnit
import kotlin.math.min
import kotlin.math.pow
object AdMaxInterstitialUtils {
private var interstitialAd: MaxInterstitialAd? = null
private var interLoadTime = Long.MAX_VALUE
private var onHidden: (() -> Unit)? = null
private var loadingListener: (() -> Unit)? = null
private var retryAttempt = 0
fun setListener(activity: Activity) {
if (interstitialAd == null) {
interstitialAd = MaxInterstitialAd(ConfigHelper.interAdMaxId, activity)
}
interstitialAd?.setListener(object : MaxAdListener {
override fun onAdLoaded(p0: MaxAd) {
loadingListener?.invoke()
interLoadTime = System.currentTimeMillis()
retryAttempt = 0
}
override fun onAdDisplayed(p0: MaxAd) {
}
override fun onAdHidden(p0: MaxAd) {
onHidden?.invoke()
}
override fun onAdClicked(p0: MaxAd) {
}
override fun onAdLoadFailed(p0: String, p1: MaxError) {
retryAttempt++
val delayMillis = TimeUnit.SECONDS.toMillis(2.0.pow(min(6, retryAttempt)).toLong())
MainScope().launch {
delay(delayMillis)
interstitialAd?.loadAd()
}
}
override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) {
}
})
}
fun showInterstitialAd(
activity: Activity,
isReLoadAd: Boolean = false,
isShowDialog: Boolean = true,
onHidden: (() -> Unit)? = null
) {
setListener(activity)
if (activity.isFinishing || activity.isDestroyed) {
return
}
val obj1 = JSONObject()
obj1.put("ad_unit", "interAd")
EventUtils.event("ad_prepare_show", ext = obj1)
if (isAdExpired()) {
val obj2 = JSONObject()
obj2.put("ad_unit", "interAd")
EventUtils.event("ad_expire", ext = obj2)
interstitialAd?.loadAd()
onHidden?.invoke()
return
}
if (!AdDisplayUtils.getInstance().shouldShowAd()) {
onHidden?.invoke()
return
}
this.onHidden = onHidden
if (interstitialAd?.isReady == true) {
interstitialAd?.showAd()
} else {
interstitialAd?.loadAd()
loadingListener = {
interstitialAd?.showAd()
loadingListener = null
}
}
}
private fun isAdExpired(): Boolean {
return System.currentTimeMillis() - interLoadTime > 1000 * 60 * 60
}
}
\ No newline at end of file
...@@ -76,7 +76,6 @@ object AdMaxOpenUtils { ...@@ -76,7 +76,6 @@ object AdMaxOpenUtils {
setListener(activity) setListener(activity)
if (activity.isFinishing || activity.isDestroyed) { if (activity.isFinishing || activity.isDestroyed) {
onHidden?.invoke()
return return
} }
......
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