From 94f1cbf66309dbafa0b2bf11fe3bb569d8f0dc15 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Mon, 2 Feb 2026 20:54:10 -0500 Subject: [PATCH 1/4] Refactor: Simplify NativeAd text components and bump version to 1.1.1 This commit refactors the `NativeAdTemplate` API to simplify how text content is handled and bumps the library version to `1.1.1`. * **API Refactoring:** * The `Headline` and `Body` composables within the `NativeAdTemplate` DSL now directly accept `String` parameters for their content. * This removes the need for developers to manually provide a composable to render the text, as `Headline` and `Body` now handle it internally. * The `NativeAdDefault` implementation has been updated to use this new, simpler API. * **Version Bump:** * The library version is updated from `1.1.0` to `1.1.1`. * **Dependency Updates:** * Updated Compose from `1.9.3` to `1.10.0`. * Updated the `maven-publish` plugin from `0.35.0` to `0.36.0`. --- .../basic/ads/nativead/NativeAdTemplate.kt | 14 ++++++++++++-- .../lexilabs/basic/ads/nativead/NativeAdDefault.kt | 4 ++-- .../basic/ads/nativead/NativeAdTemplate.kt | 2 ++ .../basic/ads/nativead/NativeAdTemplate.kt | 2 ++ gradle/libs.versions.toml | 6 +++--- 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/basic-ads/src/androidMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt b/basic-ads/src/androidMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt index c243983..063c02d 100644 --- a/basic-ads/src/androidMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt +++ b/basic-ads/src/androidMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt @@ -111,6 +111,7 @@ public actual abstract class NativeAdTemplate public actual constructor( @Composable public actual fun SupervisorScope.Body( + body: String, modifier: Modifier ) { val nativeAdView = LocalNativeAdView.current ?: throw IllegalStateException("NativeAdView null") @@ -119,7 +120,11 @@ public actual abstract class NativeAdTemplate public actual constructor( AndroidView( factory = { nativeAdView.bodyView = localComposeView - localComposeView + localComposeView.apply { + setContent { + BasicText(body) + } + } }, modifier = modifier, ) @@ -143,6 +148,7 @@ public actual abstract class NativeAdTemplate public actual constructor( @Composable public actual fun SupervisorScope.Headline( + headline: String, modifier: Modifier ) { val nativeAdView = LocalNativeAdView.current ?: throw IllegalStateException("NativeAdView null") @@ -151,7 +157,11 @@ public actual abstract class NativeAdTemplate public actual constructor( AndroidView( factory = { nativeAdView.headlineView = localComposeView - localComposeView + localComposeView.apply { + setContent { + BasicText(headline) + } + } }, modifier = modifier, ) diff --git a/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdDefault.kt b/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdDefault.kt index 23ee03f..c07bbd5 100644 --- a/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdDefault.kt +++ b/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdDefault.kt @@ -31,11 +31,11 @@ public class NativeAdDefault public constructor( Attribution(text = "ad") Row { nativeAdData.icon?.let { Icon() } } Column { - nativeAdData.headline?.let { Headline() } + nativeAdData.headline?.let { Headline(it) } nativeAdData.starRating?.let { BasicText("Rated $it") } } - nativeAdData.body?.let { Body() } + nativeAdData.body?.let { Body(it) } Row(Modifier.align(Alignment.End).padding(5.dp)) { nativeAdData.price?.let { BasicText(it) } diff --git a/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt b/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt index 9f88778..48fbfd9 100644 --- a/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt +++ b/basic-ads/src/commonMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt @@ -46,6 +46,7 @@ public expect abstract class NativeAdTemplate public constructor( @Composable public fun SupervisorScope.Body( + body: String, modifier: Modifier = Modifier ) @@ -56,6 +57,7 @@ public expect abstract class NativeAdTemplate public constructor( @Composable public fun SupervisorScope.Headline( + headline: String, modifier: Modifier = Modifier ) diff --git a/basic-ads/src/iosMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt b/basic-ads/src/iosMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt index de8ecc6..17d3ff1 100644 --- a/basic-ads/src/iosMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt +++ b/basic-ads/src/iosMain/kotlin/app/lexilabs/basic/ads/nativead/NativeAdTemplate.kt @@ -116,6 +116,7 @@ public actual abstract class NativeAdTemplate public actual constructor( @OptIn(ExperimentalForeignApi::class) @Composable public actual fun SupervisorScope.Body( + body: String, modifier: Modifier ) { UIKitView( @@ -160,6 +161,7 @@ public actual abstract class NativeAdTemplate public actual constructor( @Composable public actual fun SupervisorScope.Headline( + headline: String, modifier: Modifier ) { UIKitView( diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ab74df6..31a5590 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # BUILD INFO -ads = "1.1.0" +ads = "1.1.1" build-sdk-compile = "36" build-sdk-min = "24" build-sdk-target = "36" @@ -13,14 +13,14 @@ cocoapods-ump = "3.1.0" # DEPENDENCIES bcv = "0.18.1" dokka = "2.1.0" #"2.0.0" -compose = "1.9.3" +compose = "1.10.0" google-play-services-ads = "24.9.0" android-core = "1.17.0" annotations = "1.9.1" kover = "0.9.4" logging = "0.2.6" android-ump = "4.0.0" -maven-publish = "0.35.0" +maven-publish = "0.36.0" # REMEDIATION remediate-okhttp = "5.3.2" remediate-bitbucket = "0.9.6" From f566625c01a873b83aba1842b3179e5125d826f9 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Mon, 4 May 2026 07:39:28 -0400 Subject: [PATCH 2/4] Add version 1.1.1 to VERSIONS.md --- VERSIONS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/VERSIONS.md b/VERSIONS.md index 8fcc947..93867c5 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -32,3 +32,4 @@ Here's a list of the Basic-Ads dependency versions for each release after 0.2.0: | 1.1.0-beta02 | 2.3.0 | 1.9.3 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 | | 1.1.0-beta03 | 2.3.0 | 1.9.3 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 | | 1.1.0 | 2.3.0 | 1.9.3 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 | +| 1.1.1 | 2.3.0 | 1.10.0 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 | From 2322a1556333196a7b4d08d332b0c10f6a8635a9 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Mon, 4 May 2026 07:40:57 -0400 Subject: [PATCH 3/4] Update Kotlin version in README.md Updated Kotlin version badge from 2.1.21 to 2.3.0. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0033696..fc9e516 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ For **iOS**, complete the steps in AdMob's instructions: ## Installation * [![Stable Release](https://img.shields.io/github/v/release/LexiLabs-App/basic-ads?filter=!*.*.*-*&label=stable&color=65c663)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-ads) -[![Kotlin](https://img.shields.io/badge/Kotlin-2.1.21-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org) +[![Kotlin](https://img.shields.io/badge/Kotlin-2.3.0-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org) * [![Latest Release](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-ads?color=yellow&label=latest)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-ads) [![Kotlin](https://img.shields.io/badge/Kotlin-2.3.0-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org) From b52293916e6aa56fd344adbbb98bd8b63142e839 Mon Sep 17 00:00:00 2001 From: Robert Jamison <65142411+robertjamison@users.noreply.github.com> Date: Mon, 4 May 2026 08:51:13 -0400 Subject: [PATCH 4/4] Updated API --- basic-ads/api/basic-ads.api | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/basic-ads/api/basic-ads.api b/basic-ads/api/basic-ads.api index 0e81465..4c03f35 100644 --- a/basic-ads/api/basic-ads.api +++ b/basic-ads/api/basic-ads.api @@ -452,9 +452,9 @@ public abstract class app/lexilabs/basic/ads/nativead/NativeAdTemplate : app/lex public final fun AdChoices (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V public final fun Advertiser (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V public final fun Attribution (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V - public final fun Body (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V + public final fun Body (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V public final fun CallToAction (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V - public final fun Headline (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V + public final fun Headline (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V public final fun Icon (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;II)V public final fun Media (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Landroidx/compose/ui/Modifier;Lapp/lexilabs/basic/ads/nativead/ScaleType;Landroidx/compose/runtime/Composer;II)V public final fun NativeAdButton-jB83MbM (Lapp/lexilabs/basic/ads/nativead/NativeAdTemplate$SupervisorScope;Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/graphics/Shape;Landroidx/compose/runtime/Composer;II)V