Commit 7514a003 authored by wanglei's avatar wanglei

...

parent 656d1a28
...@@ -3,11 +3,14 @@ package com.base.filerecoveryrecyclebin.ads.admob ...@@ -3,11 +3,14 @@ package com.base.filerecoveryrecyclebin.ads.admob
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
import androidx.core.view.children
import com.base.filerecoveryrecyclebin.BuildConfig import com.base.filerecoveryrecyclebin.BuildConfig
import com.base.filerecoveryrecyclebin.help.ConfigHelper import com.base.filerecoveryrecyclebin.help.ConfigHelper
import com.base.filerecoveryrecyclebin.utils.AppPreferences import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.LogEx
import com.google.ads.mediation.admob.AdMobAdapter import com.google.ads.mediation.admob.AdMobAdapter
import com.google.android.gms.ads.AdListener import com.google.android.gms.ads.AdListener
import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.AdRequest
...@@ -17,6 +20,7 @@ import java.util.UUID ...@@ -17,6 +20,7 @@ import java.util.UUID
object AdmobBannerUtils { object AdmobBannerUtils {
private val TAG = "AdmobBannerUtils"
private var adView: AdView? = null private var adView: AdView? = null
private var listener: ViewTreeObserver.OnGlobalLayoutListener? = null private var listener: ViewTreeObserver.OnGlobalLayoutListener? = null
...@@ -29,6 +33,7 @@ object AdmobBannerUtils { ...@@ -29,6 +33,7 @@ object AdmobBannerUtils {
adView?.destroy() adView?.destroy()
} }
adView = AdView(context) adView = AdView(context)
adView?.tag = "CollapsibleBannerAd"
parent.removeAllViews() parent.removeAllViews()
parent.addView(adView) parent.addView(adView)
listener = ViewTreeObserver.OnGlobalLayoutListener { listener = ViewTreeObserver.OnGlobalLayoutListener {
...@@ -37,13 +42,13 @@ object AdmobBannerUtils { ...@@ -37,13 +42,13 @@ object AdmobBannerUtils {
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, adWidth) val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, adWidth)
adView?.adUnitId = if (BuildConfig.DEBUG) ConfigHelper.bannerAdmobIdTest else ConfigHelper.bannerAdmobId adView?.adUnitId = if (BuildConfig.DEBUG) ConfigHelper.bannerAdmobIdTest else ConfigHelper.bannerAdmobId
adView?.setAdSize(adSize) adView?.setAdSize(adSize)
loadCollapsibleBanner() loadCollapsibleBanner(parent)
parent.viewTreeObserver.removeOnGlobalLayoutListener(listener) parent.viewTreeObserver.removeOnGlobalLayoutListener(listener)
} }
parent.viewTreeObserver.addOnGlobalLayoutListener(listener) parent.viewTreeObserver.addOnGlobalLayoutListener(listener)
} }
private fun loadCollapsibleBanner() { private fun loadCollapsibleBanner(parent: ViewGroup) {
val extras = Bundle() val extras = Bundle()
extras.putString("collapsible", "bottom") extras.putString("collapsible", "bottom")
extras.putString("collapsible_request_id", UUID.randomUUID().toString()) extras.putString("collapsible_request_id", UUID.randomUUID().toString())
...@@ -52,6 +57,19 @@ object AdmobBannerUtils { ...@@ -52,6 +57,19 @@ object AdmobBannerUtils {
adView?.adListener = adView?.adListener =
object : AdListener() { object : AdListener() {
override fun onAdLoaded() {} override fun onAdLoaded() {}
override fun onAdClosed() {
super.onAdClosed()
LogEx.logDebug(TAG, "onAdClosed")
val removeList = arrayListOf<View>()
parent.children.forEach {
if (it.tag != "CollapsibleBannerAd") {
removeList.add(it)
}
}
removeList.forEach {
parent.removeView(it)
}
}
} }
adView?.loadAd(adRequest) adView?.loadAd(adRequest)
} }
......
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