Skip to content

Commit 1006ee4

Browse files
committed
Bump RevenueCat SDK, Kotlin, Compose, and Jetpack libraries
1 parent 20dd461 commit 1006ee4

File tree

6 files changed

+62
-48
lines changed

6 files changed

+62
-48
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,11 @@ plugins {
2626

2727
android {
2828
namespace = "com.revenuecat.articles.paywall.compose"
29-
compileSdk = 35
29+
compileSdk = 36
3030

3131
defaultConfig {
3232
applicationId = "com.revenuecat.articles.paywall.compose"
3333
minSdk = 24
34-
targetSdk = 35
3534
versionCode = 1
3635
versionName = "1.0"
3736
}

build-logic/convention/src/main/kotlin/com/revenuecat/KotlinAndroid.kt

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@ package com.revenuecat
33
import com.android.build.api.dsl.CommonExtension
44
import org.gradle.api.JavaVersion
55
import org.gradle.api.Project
6-
import org.gradle.api.plugins.ExtensionAware
7-
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
6+
import org.gradle.kotlin.dsl.assign
7+
import org.gradle.kotlin.dsl.configure
8+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
9+
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
10+
import org.jetbrains.kotlin.gradle.dsl.KotlinBaseExtension
11+
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
812

913
/**
1014
* Configure base Kotlin with Android options
@@ -28,25 +32,34 @@ internal fun Project.configureKotlinAndroid(
2832
abortOnError = false
2933
}
3034

31-
kotlinOptions {
32-
// Treat all Kotlin warnings as errors (disabled by default)
33-
allWarningsAsErrors = properties["warningsAsErrors"] as? Boolean ?: false
34-
freeCompilerArgs = freeCompilerArgs + listOf(
35-
"-Xcontext-receivers",
36-
"-opt-in=kotlin.RequiresOptIn",
37-
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
38-
"-opt-in=com.google.accompanist.pager.ExperimentalPagerApi",
39-
"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api",
40-
"-opt-in=androidx.lifecycle.compose.ExperimentalLifecycleComposeApi",
41-
"-opt-in=androidx.compose.animation.ExperimentalSharedTransitionApi",
42-
)
43-
44-
// Set JVM target
45-
jvmTarget = JavaVersion.VERSION_17.toString()
46-
}
35+
configureKotlin<KotlinAndroidProjectExtension>()
4736
}
4837
}
4938

50-
fun CommonExtension<*, *, *, *, *, *>.kotlinOptions(block: KotlinJvmOptions.() -> Unit) {
51-
(this as ExtensionAware).extensions.configure("kotlinOptions", block)
52-
}
39+
/**
40+
* Configure base Kotlin options
41+
*/
42+
private inline fun <reified T : KotlinBaseExtension> Project.configureKotlin() = configure<T> {
43+
// Treat all Kotlin warnings as errors (disabled by default)
44+
// Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties
45+
val warningsAsErrors = providers.gradleProperty("warningsAsErrors").map {
46+
it.toBoolean()
47+
}.orElse(false)
48+
when (this) {
49+
is KotlinAndroidProjectExtension -> compilerOptions
50+
is KotlinJvmProjectExtension -> compilerOptions
51+
else -> TODO("Unsupported project extension $this ${T::class}")
52+
}.apply {
53+
jvmTarget = JvmTarget.JVM_17
54+
allWarningsAsErrors = warningsAsErrors
55+
freeCompilerArgs.addAll(
56+
"-Xcontext-receivers",
57+
"-opt-in=kotlin.RequiresOptIn",
58+
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
59+
"-opt-in=com.google.accompanist.pager.ExperimentalPagerApi",
60+
"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api",
61+
"-opt-in=androidx.lifecycle.compose.ExperimentalLifecycleComposeApi",
62+
"-opt-in=androidx.compose.animation.ExperimentalSharedTransitionApi",
63+
)
64+
}
65+
}

feature/article/src/main/kotlin/com/revenuecat/articles/paywal/feature/article/CatArticlesDetail.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import android.app.Activity
2121
import android.widget.Toast
2222
import androidx.compose.animation.AnimatedVisibility
2323
import androidx.compose.animation.AnimatedVisibilityScope
24+
import androidx.compose.animation.SharedTransitionLayout
2425
import androidx.compose.animation.SharedTransitionScope
2526
import androidx.compose.foundation.background
2627
import androidx.compose.foundation.clickable
@@ -321,7 +322,7 @@ private fun DetailsContent(
321322
@Composable
322323
private fun CatArticlesDetailContentPreview() {
323324
CatArticlesTheme {
324-
SharedTransitionScope {
325+
SharedTransitionLayout {
325326
AnimatedVisibility(visible = true, label = "") {
326327
Column(modifier = Modifier.fillMaxSize()) {
327328
CatArticlesDetailContent(

feature/home/src/main/kotlin/com/revenuecat/articles/paywall/feature/home/CatArticlesHome.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package com.revenuecat.articles.paywall.feature.home
1717

1818
import androidx.compose.animation.AnimatedVisibility
1919
import androidx.compose.animation.AnimatedVisibilityScope
20+
import androidx.compose.animation.SharedTransitionLayout
2021
import androidx.compose.animation.SharedTransitionScope
2122
import androidx.compose.foundation.background
2223
import androidx.compose.foundation.clickable
@@ -165,7 +166,7 @@ private fun SharedTransitionScope.ArticleCard(
165166
@Composable
166167
private fun HomeContentPreview() {
167168
CatArticlesTheme {
168-
SharedTransitionScope {
169+
SharedTransitionLayout {
169170
AnimatedVisibility(visible = true, label = "") {
170171
HomeContent(
171172
uiState = HomeUiState.Success(List(10) { mockArticle }),
@@ -181,7 +182,7 @@ private fun HomeContentPreview() {
181182
@Composable
182183
private fun ArticleCardPreview() {
183184
CatArticlesTheme {
184-
SharedTransitionScope {
185+
SharedTransitionLayout {
185186
AnimatedVisibility(visible = true, label = "") {
186187
ArticleCard(
187188
article = mockArticle,

gradle/libs.versions.toml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
[versions]
2-
agp = "8.9.1"
3-
kotlin = "2.1.10"
4-
purchases = "8.15.1"
2+
agp = "8.12.0"
3+
kotlin = "2.2.0"
4+
purchases = "9.2.0"
55
activityCompose = "1.10.1"
6-
androidxComposeMaterial3 = "1.3.1"
6+
androidxComposeMaterial3 = "1.3.2"
77
androidxComposeConstraintLayout = "1.1.1"
8-
androidxComposeNavigation = "2.9.0-alpha09"
8+
androidxComposeNavigation = "2.9.3"
99
androidxHiltNavigationCompose = "1.2.0"
10-
androidxLifecycle = "2.8.7"
10+
androidxLifecycle = "2.9.2"
1111
androidxProfileinstaller = "1.4.1"
12-
androidxCore = "1.15.0"
12+
androidxCore = "1.17.0"
1313
androidxStartup = "1.2.0"
14-
androidxTest = "1.6.2"
15-
composeBom = "2025.03.01"
16-
composeStableMarker = "1.0.5"
17-
composeEffects = "0.1.1"
18-
kotlinxCoroutines = "1.10.1"
19-
kotlinxSerializationJson = "1.8.0"
20-
ksp = "2.1.10-1.0.31"
14+
androidxTest = "1.7.0"
15+
composeBom = "2025.08.00"
16+
composeStableMarker = "1.0.6"
17+
composeEffects = "0.1.2"
18+
kotlinxCoroutines = "1.10.2"
19+
kotlinxSerializationJson = "1.9.0"
20+
ksp = "2.2.0-2.0.2"
2121
googleSecretPlugin = "2.0.1"
22-
hilt = "2.56.1"
23-
okhttp = "4.12.0"
24-
landscapist = "2.4.6"
25-
retrofit = "2.11.0"
26-
sandwich = "2.1.1"
27-
baselineprofile = "1.3.4"
22+
hilt = "2.57"
23+
okhttp = "5.1.0"
24+
landscapist = "2.5.1"
25+
retrofit = "3.0.0"
26+
sandwich = "2.1.2"
27+
baselineprofile = "1.4.0"
2828
spotless = "6.21.0"
2929
androidxJunit = "1.2.1"
3030
espressoCoreVersion = "3.6.1"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Thu Apr 03 15:02:42 KST 2025
1+
#Thu Aug 14 15:37:36 KST 2025
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)