Skip to content

Commit

Permalink
* Added onLoad callback for BannerAd, InterstitialAd, RewardedAd, and…
Browse files Browse the repository at this point in the history
… RewardedInterstitialAd @composables (#60)

* Updated documentation
  • Loading branch information
robertjamison authored Jan 31, 2025
1 parent 11f9e12 commit ca5f789
Show file tree
Hide file tree
Showing 168 changed files with 224 additions and 194 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ import androidx.compose.ui.viewinterop.AndroidView

@RequiresPermission("android.permission.INTERNET")
@Composable
public actual fun BannerAd(adUnitId: String, adSize: AdSize) {
public actual fun BannerAd(
adUnitId: String,
adSize: AdSize,
onLoad: () -> Unit
) {
AndroidView(
factory = { context ->
val adView = AdView(context)
adView.apply {
this.setAdSize(adSize.toAndroid())
this.adUnitId = adUnitId
this.loadAd(AdLoader().requestAd())
if (!this.isLoading) { onLoad() }
}
}
)
Expand All @@ -29,12 +34,14 @@ public actual fun InterstitialAd(
onImpression: () -> Unit,
onClick: () -> Unit,
onFailure: () -> Unit,
onLoad: () -> Unit
) {
val adLoader = AdLoader()
adLoader.loadInterstitialAd(
activity,
adUnitId,
onLoaded = {
onLoad()
adLoader.showInterstitialAd(
activity = activity,
onDismissed = { onDismissed() },
Expand All @@ -58,12 +65,14 @@ public actual fun RewardedAd(
onImpression: () -> Unit,
onClick: () -> Unit,
onFailure: () -> Unit,
onLoad: () -> Unit
) {
val adLoader = AdLoader()
adLoader.loadRewardedAd(
activity = activity,
adUnitId = adUnitId,
onLoaded = {
onLoad()
adLoader.showRewardedAd(
activity = activity,
onDismissed = { onDismissed() },
Expand All @@ -88,12 +97,14 @@ public actual fun RewardedInterstitialAd(
onImpression: () -> Unit,
onClick: () -> Unit,
onFailure: () -> Unit,
onLoad: () -> Unit
) {
val adLoader = AdLoader()
adLoader.loadRewardedInterstitialAd(
activity = activity,
adUnitId = adUnitId,
onLoaded = {
onLoad()
adLoader.showRewardedInterstitialAd(
activity = activity,
onDismissed = { onDismissed() },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ import androidx.compose.runtime.Composable
* Loads and displays a Banner Ad using a [Composable].
* @param adUnitId Your AdMob AdUnitId [String]
* @param adSize Your AdMob [AdSize]
* @param onLoad Lambda expression that executes after the [AdRequest] has fully loaded
* @see AdUnitId.autoSelect
*/
@DependsOnGoogleMobileAds
@Composable public expect fun BannerAd(
adUnitId: String = AdUnitId.BANNER_DEFAULT,
adSize: AdSize = AdSize.FULL_BANNER
adSize: AdSize = AdSize.FULL_BANNER,
onLoad: () -> Unit = {}
)

/**
Expand All @@ -23,6 +25,7 @@ import androidx.compose.runtime.Composable
* @param onImpression Lambda expression that executes after the user has seen the ad
* @param onClick Lambda expression that executes after the user clicks the ad
* @param onFailure Lambda expression that executes after the ad fails to load or redirect
* @param onLoad Lambda expression that executes after the [AdRequest] has fully loaded
* @see AdUnitId.autoSelect
*/
@DependsOnGoogleMobileAds
Expand All @@ -34,6 +37,7 @@ import androidx.compose.runtime.Composable
onImpression: () -> Unit = {},
onClick: () -> Unit = {},
onFailure: () -> Unit = {},
onLoad: () -> Unit = {}
)

/**
Expand All @@ -46,6 +50,7 @@ import androidx.compose.runtime.Composable
* @param onImpression Lambda expression that executes after the user has seen the ad
* @param onClick Lambda expression that executes after the user clicks the ad
* @param onFailure Lambda expression that executes after the ad fails to load or redirect
* @param onLoad Lambda expression that executes after the [AdRequest] has fully loaded
* @see AdUnitId.autoSelect
*/
@DependsOnGoogleMobileAds
Expand All @@ -58,6 +63,7 @@ import androidx.compose.runtime.Composable
onImpression: () -> Unit = {},
onClick: () -> Unit = {},
onFailure: () -> Unit = {},
onLoad: () -> Unit = {}
)

/**
Expand All @@ -70,6 +76,7 @@ import androidx.compose.runtime.Composable
* @param onImpression Lambda expression that executes after the user has seen the ad
* @param onClick Lambda expression that executes after the user clicks the ad
* @param onFailure Lambda expression that executes after the ad fails to load or redirect
* @param onLoad Lambda expression that executes after the [AdRequest] has fully loaded
* @see AdUnitId.autoSelect
*/
@DependsOnGoogleMobileAds
Expand All @@ -82,4 +89,5 @@ import androidx.compose.runtime.Composable
onImpression: () -> Unit = {},
onClick: () -> Unit = {},
onFailure: () -> Unit = {},
onLoad: () -> Unit = {}
)
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@ import platform.UIKit.UIApplication

@OptIn(ExperimentalForeignApi::class)
@Composable
public actual fun BannerAd(adUnitId: String, adSize: AdSize) {
public actual fun BannerAd(
adUnitId: String,
adSize: AdSize,
onLoad: () -> Unit
) {
UIKitView(
factory = {
val viewController = UIApplication.sharedApplication.keyWindow?.rootViewController
Expand All @@ -21,6 +25,7 @@ public actual fun BannerAd(adUnitId: String, adSize: AdSize) {
adUnitID = adUnitId
this.rootViewController = viewController
loadRequest(AdLoader().requestAd())
if (viewController.viewLoaded) { onLoad() }
}
bannerView
},
Expand All @@ -37,12 +42,14 @@ public actual fun InterstitialAd(
onImpression: () -> Unit,
onClick: () -> Unit,
onFailure: () -> Unit,
onLoad: () -> Unit
) {
val adLoader = AdLoader()
adLoader.loadInterstitialAd(
activity,
adUnitId,
onLoaded = {
onLoad()
adLoader.showInterstitialAd(
activity = activity,
onDismissed = { onDismissed() },
Expand All @@ -65,12 +72,14 @@ public actual fun RewardedAd(
onImpression: () -> Unit,
onClick: () -> Unit,
onFailure: () -> Unit,
onLoad: () -> Unit
) {
val adLoader = AdLoader()
adLoader.loadRewardedAd(
activity = activity,
adUnitId = adUnitId,
onLoaded = {
onLoad()
adLoader.showRewardedAd(
activity = activity,
onDismissed = { onDismissed() },
Expand All @@ -94,12 +103,14 @@ public actual fun RewardedInterstitialAd(
onImpression: () -> Unit,
onClick: () -> Unit,
onFailure: () -> Unit,
onLoad: () -> Unit
) {
val adLoader = AdLoader()
adLoader.loadRewardedInterstitialAd(
activity = activity,
adUnitId = adUnitId,
onLoaded = {
onLoad()
adLoader.showRewardedInterstitialAd(
activity = activity,
onDismissed = { onDismissed() },
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ dependencies {

allprojects {
group = "app.lexilabs.basic"
version = "0.2.4"
version = "0.2.5-beta01"

apply(plugin = "org.jetbrains.dokka")
apply(plugin = "maven-publish")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector common-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</button>
<div class="navigation-controls--break ui-kit_mobile-only"></div>
<div class="library-version" id="library-version">
0.2.4 </div>
0.2.5-beta01 </div>
<div class="navigation-controls">
<div class="filter-section filter-section_loading" id="filter-section">
<button class="platform-tag platform-selector jvm-like" data-active=""
Expand Down
Loading

0 comments on commit ca5f789

Please sign in to comment.