Skip to content

Commit 604fefa

Browse files
committed
refactor: remove deprecated sku type
1 parent 5079aed commit 604fefa

2 files changed

Lines changed: 26 additions & 16 deletions

File tree

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package com.tien.piholeconnect.service
22

33
import androidx.lifecycle.DefaultLifecycleObserver
4-
import com.android.billingclient.api.BillingClient
5-
import com.android.billingclient.api.BillingClientStateListener
6-
import com.android.billingclient.api.ConsumeResponseListener
7-
import com.android.billingclient.api.PurchasesUpdatedListener
4+
import com.android.billingclient.api.*
85

9-
interface InAppPurchase : DefaultLifecycleObserver, BillingClientStateListener, PurchasesUpdatedListener,
6+
interface InAppPurchase :
7+
DefaultLifecycleObserver,
8+
BillingClientStateListener,
9+
PurchasesUpdatedListener,
10+
PurchasesResponseListener,
1011
ConsumeResponseListener {
1112
val billingClient: BillingClient
1213
}

app/src/main/java/com/tien/piholeconnect/service/InAppPurchaseImpl.kt

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@ package com.tien.piholeconnect.service
22

33
import android.content.Context
44
import androidx.lifecycle.LifecycleOwner
5-
import com.android.billingclient.api.BillingClient
5+
import com.android.billingclient.api.*
66
import com.android.billingclient.api.BillingClient.BillingResponseCode
7-
import com.android.billingclient.api.BillingClient.SkuType
8-
import com.android.billingclient.api.BillingResult
9-
import com.android.billingclient.api.ConsumeParams
10-
import com.android.billingclient.api.Purchase
117
import dagger.hilt.android.qualifiers.ApplicationContext
128
import javax.inject.Inject
139

@@ -51,21 +47,34 @@ class InAppPurchaseImpl @Inject constructor(
5147
purchases: MutableList<Purchase>?
5248
) {
5349
if (billingResult.responseCode == BillingResponseCode.OK) {
54-
purchases?.apply(this::handlePurchases)
50+
purchases?.apply(this::consumePurchases)
5551
}
5652
}
5753

5854
override fun onConsumeResponse(billingResult: BillingResult, token: String) {
5955
}
6056

61-
private fun consumeOutstandingPurchases() {
62-
billingClient.queryPurchasesAsync(SkuType.INAPP) { _, purchases ->
63-
handlePurchases(purchases)
57+
override fun onQueryPurchasesResponse(
58+
billingResult: BillingResult,
59+
purchases: MutableList<Purchase>
60+
) {
61+
if (billingResult.responseCode == BillingResponseCode.OK) {
62+
this.consumePurchases(purchases)
6463
}
6564
}
6665

67-
private fun handlePurchases(purchases: Iterable<Purchase>) {
68-
purchases.map { purchase ->
66+
private fun consumeOutstandingPurchases() {
67+
billingClient.queryPurchasesAsync(
68+
QueryPurchasesParams
69+
.newBuilder()
70+
.setProductType(BillingClient.ProductType.INAPP)
71+
.build(),
72+
this
73+
)
74+
}
75+
76+
private fun consumePurchases(purchases: Iterable<Purchase>) {
77+
purchases.forEach { purchase ->
6978
ConsumeParams.newBuilder()
7079
.setPurchaseToken(purchase.purchaseToken)
7180
.build().let {

0 commit comments

Comments
 (0)