From 6b2073eff2cf9b5d4afddba73a3e8dd8f809eb6f Mon Sep 17 00:00:00 2001 From: darken Date: Wed, 2 Jul 2025 16:52:07 +0200 Subject: [PATCH] Update AGP, SDK, and BillingClient This commit updates: - Android Gradle Plugin to 8.11.0 - Compile/Target SDK to 36 - Google Play Billing Library to 8.0.0 The `BillingClient` is updated to use the new `PendingPurchasesParams` and `QueryPurchasesParams` APIs. --- app/build.gradle.kts | 4 ++-- .../common/upgrade/core/client/BillingClientConnection.kt | 7 ++++++- .../upgrade/core/client/BillingClientConnectionProvider.kt | 7 ++++++- build.gradle.kts | 2 +- buildSrc/build.gradle.kts | 2 +- buildSrc/src/main/java/ProjectConfig.kt | 4 ++-- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fa7aece8..86f0f28b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -151,6 +151,6 @@ dependencies { addTesting() - "gplayImplementation"("com.android.billingclient:billing:7.1.1") - "gplayImplementation"("com.android.billingclient:billing-ktx:7.1.1") + "gplayImplementation"("com.android.billingclient:billing:8.0.0") + "gplayImplementation"("com.android.billingclient:billing-ktx:8.0.0") } \ No newline at end of file diff --git a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt index 971c46e8..6406642c 100644 --- a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt +++ b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnection.kt @@ -8,6 +8,7 @@ import com.android.billingclient.api.BillingResult import com.android.billingclient.api.ProductDetails import com.android.billingclient.api.Purchase import com.android.billingclient.api.QueryProductDetailsParams +import com.android.billingclient.api.QueryPurchasesParams import eu.darken.capod.common.debug.logging.Logging.Priority.INFO import eu.darken.capod.common.debug.logging.Logging.Priority.WARN import eu.darken.capod.common.debug.logging.log @@ -39,8 +40,12 @@ data class BillingClientConnection( .setupCommonEventHandlers(TAG) { "purchases" } suspend fun queryPurchases(): Collection { + val params = QueryPurchasesParams.newBuilder() + .setProductType(BillingClient.ProductType.INAPP) + .build() + val (result: BillingResult, purchases) = suspendCoroutine?>> { continuation -> - client.queryPurchasesAsync(BillingClient.SkuType.INAPP) { result, purchases -> + client.queryPurchasesAsync(params) { result, purchases -> continuation.resume(result to purchases) } } diff --git a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnectionProvider.kt b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnectionProvider.kt index 0d9089d0..499cdc22 100644 --- a/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnectionProvider.kt +++ b/app/src/gplay/java/eu/darken/capod/common/upgrade/core/client/BillingClientConnectionProvider.kt @@ -5,6 +5,7 @@ import com.android.billingclient.api.BillingClient.BillingResponseCode import com.android.billingclient.api.BillingClient.newBuilder import com.android.billingclient.api.BillingClientStateListener import com.android.billingclient.api.BillingResult +import com.android.billingclient.api.PendingPurchasesParams import com.android.billingclient.api.Purchase import dagger.hilt.android.qualifiers.ApplicationContext import eu.darken.capod.common.debug.logging.Logging.Priority.* @@ -33,7 +34,11 @@ class BillingClientConnectionProvider @Inject constructor( val purchasePublisher = MutableStateFlow>(emptySet()) val client = newBuilder(context).apply { - enablePendingPurchases() + enablePendingPurchases( + PendingPurchasesParams.newBuilder() + .enableOneTimeProducts() + .build() + ) setListener { result, purchases -> if (result.isSuccess) { log(TAG) { diff --git a/build.gradle.kts b/build.gradle.kts index 311765fc..959b1d91 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ buildscript { mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.10.1") + classpath("com.android.tools.build:gradle:8.11.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.Kotlin.core}") classpath("com.google.dagger:hilt-android-gradle-plugin:${Versions.Dagger.core}") classpath("androidx.navigation:navigation-safe-args-gradle-plugin:${Versions.AndroidX.Navigation.core}") diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index a71594a1..ee5f442b 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -8,7 +8,7 @@ repositories { mavenCentral() } dependencies { - implementation("com.android.tools.build:gradle:8.10.1") + implementation("com.android.tools.build:gradle:8.11.0") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.21") implementation("com.squareup:javapoet:1.13.0") } diff --git a/buildSrc/src/main/java/ProjectConfig.kt b/buildSrc/src/main/java/ProjectConfig.kt index 093963a3..c3f97d47 100644 --- a/buildSrc/src/main/java/ProjectConfig.kt +++ b/buildSrc/src/main/java/ProjectConfig.kt @@ -11,8 +11,8 @@ object ProjectConfig { const val packageName = "eu.darken.capod" const val minSdk = 26 - const val compileSdk = 34 - const val targetSdk = 34 + const val compileSdk = 36 + const val targetSdk = 36 object Version { val versionProperties = Properties().apply {