Commit 851ff8db authored by wanglei's avatar wanglei

开屏预加载

parent 6caecc70
...@@ -72,17 +72,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() { ...@@ -72,17 +72,18 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
actionId = intent?.extras?.getInt("actionId") ?: -1 actionId = intent?.extras?.getInt("actionId") ?: -1
closeNotification() closeNotification()
if (ConfigHelper.admobTrueMaxFlase) {
AdmobNativeUtils.loadNativeAd()
AdmobInterstitialUtils.loadInterstitialAd(this)
}
progressCollect() progressCollect()
if (ifAgreePrivacy) { if (ifAgreePrivacy) {
job = startProgress() job = startProgress()
binding.llStart.visibility = View.GONE binding.llStart.visibility = View.GONE
binding.llProgress.visibility = View.VISIBLE binding.llProgress.visibility = View.VISIBLE
if (ConfigHelper.admobTrueMaxFlase) {
AdmobNativeUtils.loadNativeAd()
AdmobInterstitialUtils.loadInterstitialAd(this)
} else {
AdMaxOpenUtils.loadAppOpenAd(this)
}
} else { } else {
binding.llStart.visibility = View.VISIBLE binding.llStart.visibility = View.VISIBLE
binding.llProgress.visibility = View.GONE binding.llProgress.visibility = View.GONE
......
...@@ -47,32 +47,39 @@ object AdMaxInterstitialUtils { ...@@ -47,32 +47,39 @@ object AdMaxInterstitialUtils {
interstitialAd?.setListener(object : MaxAdListener { interstitialAd?.setListener(object : MaxAdListener {
override fun onAdLoaded(p0: MaxAd) { override fun onAdLoaded(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdLoaded")
loadingListener?.invoke() loadingListener?.invoke()
interLoadTime = System.currentTimeMillis() interLoadTime = System.currentTimeMillis()
retryAttempt = 0 retryAttempt = 0
} }
override fun onAdLoadFailed(p0: String, p1: MaxError) {
LogEx.logDebug(TAG, "onAdLoadFailed")
retryAttempt++
val delayMillis = TimeUnit.SECONDS.toMillis(2.0.pow(min(6, retryAttempt)).toLong())
MainScope().launch {
delay(delayMillis)
interstitialAd?.loadAd()
}
}
override fun onAdDisplayed(p0: MaxAd) { override fun onAdDisplayed(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdDisplayed")
} }
override fun onAdHidden(p0: MaxAd) { override fun onAdHidden(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdHidden")
onHidden?.invoke() onHidden?.invoke()
} }
override fun onAdClicked(p0: MaxAd) { override fun onAdClicked(p0: MaxAd) {
LogEx.logDebug(TAG, "onAdClicked")
} }
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) { override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) {
LogEx.logDebug(TAG, "onAdDisplayFailed")
} }
}) })
} }
...@@ -114,7 +121,7 @@ object AdMaxInterstitialUtils { ...@@ -114,7 +121,7 @@ object AdMaxInterstitialUtils {
} else { } else {
interstitialAd?.loadAd() interstitialAd?.loadAd()
LogEx.logDebug(TAG, "isReady=false") LogEx.logDebug(TAG, "isReady=false")
showAdDialogAndLoadInterstitial(activity, isReLoadAd, isShowDialog, onHidden) showAdDialogAndLoadInterstitial(activity, isReLoadAd)
} }
} }
...@@ -160,9 +167,7 @@ object AdMaxInterstitialUtils { ...@@ -160,9 +167,7 @@ object AdMaxInterstitialUtils {
private fun showAdDialogAndLoadInterstitial( private fun showAdDialogAndLoadInterstitial(
activity: Activity, activity: Activity,
isReLoadAd: Boolean,
isShowDialog: Boolean, isShowDialog: Boolean,
onHidden: (() -> Unit)?
) { ) {
if (!isShowDialog) { if (!isShowDialog) {
return return
...@@ -180,10 +185,6 @@ object AdMaxInterstitialUtils { ...@@ -180,10 +185,6 @@ object AdMaxInterstitialUtils {
loadingListener = null loadingListener = null
} }
// if (isReLoadAd) {
// mDialog?.dismiss()
// onHidden?.invoke()
// }
} }
......
...@@ -17,6 +17,7 @@ import com.base.filerecoveryrecyclebin.utils.LogEx ...@@ -17,6 +17,7 @@ import com.base.filerecoveryrecyclebin.utils.LogEx
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.jacoco.core.internal.analysis.filter.IFilter
import org.json.JSONObject import org.json.JSONObject
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import kotlin.math.min import kotlin.math.min
...@@ -28,8 +29,8 @@ object AdMaxOpenUtils { ...@@ -28,8 +29,8 @@ object AdMaxOpenUtils {
private var openLoadTime = Long.MAX_VALUE private var openLoadTime = Long.MAX_VALUE
private var onHidden: (() -> Unit)? = null private var onHidden: (() -> Unit)? = null
private var loadingListener: (() -> Unit)? = null private var loadingListener: (() -> Unit)? = null
private var retryAttempt = 0 private var retryAttempt = 0
private var maxRetryAttempt = 8
private fun setListener(context: Context) { private fun setListener(context: Context) {
if (appOpenAd == null) { if (appOpenAd == null) {
...@@ -43,19 +44,23 @@ object AdMaxOpenUtils { ...@@ -43,19 +44,23 @@ object AdMaxOpenUtils {
} }
override fun onAdLoadFailed(p0: String, p1: MaxError) { override fun onAdLoadFailed(p0: String, p1: MaxError) {
retryAttempt++ // retryAttempt++
val delayMillis = TimeUnit.SECONDS.toMillis(2.0.pow(min(6, retryAttempt)).toLong()) // val delayMillis = TimeUnit.SECONDS.toMillis(2.0.pow(min(6, retryAttempt)).toLong())
LogEx.logDebug(TAG, "onAdLoadFailed retryAttempt=$retryAttempt delayMillis=$delayMillis") // LogEx.logDebug(TAG, "onAdLoadFailed retryAttempt=$retryAttempt delayMillis=$delayMillis")
if (retryAttempt == 2) { // if (retryAttempt == 2) {
LogEx.logDebug(TAG, "onAdLoadFailed onHidden") // LogEx.logDebug(TAG, "onAdLoadFailed onHidden")
onHidden?.invoke() // onHidden?.invoke()
} // }
//
MainScope().launch { // if (retryAttempt <= maxRetryAttempt) {
delay(delayMillis) // MainScope().launch {
appOpenAd?.loadAd() // delay(delayMillis)
} // appOpenAd?.loadAd()
// }
// } else {
// retryAttempt = 0
// }
onHidden?.invoke()
} }
...@@ -127,20 +132,28 @@ object AdMaxOpenUtils { ...@@ -127,20 +132,28 @@ object AdMaxOpenUtils {
LogEx.logDebug(TAG, "showAppOpenAd continue") LogEx.logDebug(TAG, "showAppOpenAd continue")
this.onHidden = onHidden
if (appOpenAd?.isReady != true) { if (appOpenAd?.isReady != true) {
LogEx.logDebug(TAG, "isReady=false") LogEx.logDebug(TAG, "isReady=false")
appOpenAd?.loadAd()
loadingListener = { loadingListener = {
this.onHidden = onHidden
LogEx.logDebug(TAG, "loadingListener callback") LogEx.logDebug(TAG, "loadingListener callback")
loaded?.invoke() loaded?.invoke()
val obj1 = JSONObject() val obj1 = JSONObject()
obj1.put("ad_unit", "openAd") obj1.put("ad_unit", "openAd")
EventUtils.event("ad_prepare_show", ext = obj1) EventUtils.event("ad_prepare_show", ext = obj1)
appOpenAd?.showAd() appOpenAd?.showAd()
appOpenAd?.loadAd()
} }
} else {
onHidden?.invoke()
appOpenAd?.loadAd()
}
}
fun loadAppOpenAd(activity: Activity) {
setListener(activity)
if (AdMaxInit.isAdMaxInit) {
appOpenAd?.loadAd()
} }
} }
......
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