diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4735169fd..d347e7404 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -253,7 +253,7 @@ dependencies { googleplayImplementation("com.google.firebase:firebase-config-ktx:${Versions.remote_config}") googleplayImplementation("com.google.android.gms:play-services-location:19.0.1") googleplayImplementation("com.google.android.gms:play-services-maps:18.0.2") - googleplayImplementation("com.android.billingclient:billing-ktx:3.0.3") + googleplayImplementation("com.android.billingclient:billing-ktx:4.0.0") googleplayImplementation("com.google.android.play:core:1.10.3") googleplayImplementation("com.google.android.play:core-ktx:1.8.1") googleplayImplementation("com.google.android.gms:play-services-oss-licenses:17.0.0") diff --git a/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.kt b/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.kt index 4510d82fc..1bcd24b7a 100644 --- a/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.kt +++ b/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.kt @@ -2,19 +2,12 @@ package org.tasks.billing import android.app.Activity import android.content.Context -import com.android.billingclient.api.AcknowledgePurchaseParams +import com.android.billingclient.api.* import com.android.billingclient.api.BillingClient.* -import com.android.billingclient.api.BillingClientStateListener -import com.android.billingclient.api.BillingFlowParams import com.android.billingclient.api.BillingFlowParams.ProrationMode -import com.android.billingclient.api.BillingResult -import com.android.billingclient.api.ConsumeParams +import com.android.billingclient.api.BillingFlowParams.SubscriptionUpdateParams import com.android.billingclient.api.Purchase.PurchaseState import com.android.billingclient.api.Purchase.PurchasesResult -import com.android.billingclient.api.PurchasesUpdatedListener -import com.android.billingclient.api.SkuDetailsParams -import com.android.billingclient.api.querySkuDetails -import com.android.billingclient.api.consumePurchase import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.NonCancellable @@ -77,7 +70,7 @@ class BillingClientImpl( purchases?.forEach { firebase.reportIabResult( result.responseCodeString, - it.sku, + it.skus.joinToString(","), it.purchaseState.purchaseStateString ) } @@ -112,9 +105,12 @@ class BillingClientImpl( ?: throw IllegalStateException("Sku $sku not found") val params = BillingFlowParams.newBuilder().setSkuDetails(skuDetails) oldPurchase?.let { - params - .setOldSku(it.sku, it.purchaseToken) - .setReplaceSkusProrationMode(ProrationMode.IMMEDIATE_WITH_TIME_PRORATION) + params.setSubscriptionUpdateParams( + SubscriptionUpdateParams.newBuilder() + .setOldSkuPurchaseToken(it.purchaseToken) + .setReplaceSkusProrationMode(ProrationMode.IMMEDIATE_WITH_TIME_PRORATION) + .build() + ) } if (activity is OnPurchasesUpdated) { onPurchasesUpdated = activity diff --git a/app/src/googleplay/java/org/tasks/billing/Purchase.kt b/app/src/googleplay/java/org/tasks/billing/Purchase.kt index d82453eac..7b5995c1c 100644 --- a/app/src/googleplay/java/org/tasks/billing/Purchase.kt +++ b/app/src/googleplay/java/org/tasks/billing/Purchase.kt @@ -24,7 +24,7 @@ class Purchase(private val purchase: Purchase) { get() = purchase.signature val sku: String - get() = purchase.sku + get() = purchase.skus.first() val purchaseToken: String get() = purchase.purchaseToken diff --git a/deps_googleplay.txt b/deps_googleplay.txt index bca62e363..13306ca61 100644 --- a/deps_googleplay.txt +++ b/deps_googleplay.txt @@ -250,8 +250,8 @@ +| +--- androidx.fragment:fragment:1.0.0 -> 1.4.0 (*) +| +--- com.google.android.gms:play-services-base:18.0.1 (*) +| \--- com.google.android.gms:play-services-basement:18.0.0 (*) -++--- com.android.billingclient:billing-ktx:3.0.3 -+| +--- com.android.billingclient:billing:3.0.3 +++--- com.android.billingclient:billing-ktx:4.0.0 ++| +--- com.android.billingclient:billing:4.0.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.0 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9 -> 1.6.4 (*) ++--- com.google.android.play:core:1.10.3