refactor banner ad

Seto committed Nov 22, 2025 at 13:25 UTC 0cb286d37c102f248405e8e036515949e3818f10
1 file changed +6 -10
android/src/main/java/ads/Banner.kt
+6 -10
@@ -18,17 +18,13 @@ import com.google.android.gms.ads.AdSize
18 import com.google.android.gms.ads.AdView
19 import com.google.android.gms.ads.LoadAdError
20 import java.util.Objects
21 +import androidx.core.view.isGone
22
23 class Banner(ctx: ExecuteContext) : AdBase(ctx), GenericAd {
23 - private val adSize: AdSize
24 - private val gravity: Int
24 + private val adSize: AdSize = AdSize.SMART_BANNER
25 + private val gravity: Int = if ("top" == ctx.optPosition()) Gravity.TOP else Gravity.BOTTOM
26 private var adView: AdView? = null
27
27 - init {
28 - adSize = AdSize.SMART_BANNER
29 - gravity = if ("top" == ctx.optPosition()) Gravity.TOP else Gravity.BOTTOM
30 - }
31 -
28 override val isLoaded: Boolean
29 get() = adView != null
30
@@ -36,7 +32,7 @@ class Banner(ctx: ExecuteContext) : AdBase(ctx), GenericAd {
32 if (adView == null) {
33 adView = AdView(activity)
34 adView!!.adUnitId = adUnitId
39 - adView!!.setAdSize(adSize)
35 + adView!!.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(activity, 360))
36 adView!!.adListener = object : AdListener() {
37 override fun onAdClicked() {
38 emit(Generated.Events.BANNER_CLICK)
@@ -64,7 +60,7 @@ class Banner(ctx: ExecuteContext) : AdBase(ctx), GenericAd {
60 }
61 }
62 adView!!.loadAd(ctx!!.optAdRequest())
67 - ctx?.resolve()
63 + ctx.resolve()
64 }
65
66 override fun show(ctx: Context?) {
@@ -72,7 +68,7 @@ class Banner(ctx: ExecuteContext) : AdBase(ctx), GenericAd {
68 val webView: WebView = ExecuteContext.Companion.plugin!!.webView!!
69 if (getParentView(adView) == null) {
70 addBannerView(ExecuteContext.Companion.plugin, adView)
75 - } else if (adView!!.visibility == View.GONE) {
71 + } else if (adView!!.isGone) {
72 adView!!.resume()
73 adView!!.visibility = View.VISIBLE
74 } else {