Skip to content

Commit 6946bfb

Browse files
yarivgdidiclaude
authored andcommitted
refactor: convert AppOpenAdPlugin and AppOpenAdManager from Java to Kotlin
Convert both App Open Ad files to idiomatic Kotlin per reviewer request. Uses Kotlin features: named parameters, apply blocks, null safety, fun interface, property accessors, and lambda syntax. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0525e6f commit 6946bfb

4 files changed

Lines changed: 190 additions & 227 deletions

File tree

android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdManager.java

Lines changed: 0 additions & 125 deletions
This file was deleted.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.getcapacitor.community.admob.appopen
2+
3+
import android.app.Activity
4+
import android.content.Context
5+
import com.google.android.gms.ads.AdError
6+
import com.google.android.gms.ads.AdRequest
7+
import com.google.android.gms.ads.FullScreenContentCallback
8+
import com.google.android.gms.ads.LoadAdError
9+
import com.google.android.gms.ads.appopen.AppOpenAd
10+
11+
class AppOpenAdManager(val adUnitId: String) {
12+
13+
private var appOpenAd: AppOpenAd? = null
14+
private var isLoadingAd = false
15+
private var isShowingAd = false
16+
17+
val isAdLoaded: Boolean
18+
get() = appOpenAd != null
19+
20+
fun loadAd(context: Context, onLoaded: () -> Unit, onFailed: (LoadAdError?) -> Unit) {
21+
if (appOpenAd != null) {
22+
onLoaded()
23+
return
24+
}
25+
26+
if (isLoadingAd) {
27+
onFailed(null)
28+
return
29+
}
30+
31+
isLoadingAd = true
32+
val request = AdRequest.Builder().build()
33+
34+
// play-services-ads 24.x: orientation overload removed; SDK picks orientation from the activity.
35+
AppOpenAd.load(
36+
context,
37+
adUnitId,
38+
request,
39+
object : AppOpenAd.AppOpenAdLoadCallback() {
40+
override fun onAdLoaded(ad: AppOpenAd) {
41+
appOpenAd = ad
42+
isLoadingAd = false
43+
onLoaded()
44+
}
45+
46+
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
47+
isLoadingAd = false
48+
onFailed(loadAdError)
49+
}
50+
}
51+
)
52+
}
53+
54+
fun showAdIfAvailable(
55+
activity: Activity,
56+
onOpened: () -> Unit,
57+
onClosed: () -> Unit,
58+
onFailedToShow: (AdError?) -> Unit
59+
) {
60+
if (appOpenAd == null || isShowingAd) {
61+
onFailedToShow(null)
62+
return
63+
}
64+
65+
isShowingAd = true
66+
appOpenAd?.fullScreenContentCallback = object : FullScreenContentCallback() {
67+
override fun onAdShowedFullScreenContent() {
68+
onOpened()
69+
}
70+
71+
override fun onAdDismissedFullScreenContent() {
72+
appOpenAd = null
73+
isShowingAd = false
74+
onClosed()
75+
}
76+
77+
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
78+
appOpenAd = null
79+
isShowingAd = false
80+
onFailedToShow(adError)
81+
}
82+
}
83+
84+
appOpenAd?.show(activity)
85+
}
86+
}

android/src/main/java/com/getcapacitor/community/admob/appopen/AppOpenAdPlugin.java

Lines changed: 0 additions & 102 deletions
This file was deleted.

0 commit comments

Comments
 (0)