@@ -2,12 +2,8 @@ package com.tien.piholeconnect.service
22
33import android.content.Context
44import androidx.lifecycle.LifecycleOwner
5- import com.android.billingclient.api.BillingClient
5+ import com.android.billingclient.api.*
66import 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
117import dagger.hilt.android.qualifiers.ApplicationContext
128import 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