@@ -11,13 +11,15 @@ import com.android.billingclient.api.BillingClientStateListener
11
11
import com.android.billingclient.api.BillingFlowParams
12
12
import com.android.billingclient.api.BillingResult
13
13
import com.android.billingclient.api.ConsumeParams
14
+ import com.android.billingclient.api.PendingPurchasesParams
14
15
import com.android.billingclient.api.ProductDetails
15
16
import com.android.billingclient.api.Purchase
16
17
import com.android.billingclient.api.PurchasesUpdatedListener
17
18
import com.android.billingclient.api.QueryProductDetailsParams
18
19
import com.android.billingclient.api.QueryPurchaseHistoryParams
19
20
import com.android.billingclient.api.QueryPurchasesParams
20
21
import com.android.billingclient.api.consumePurchase
22
+ import com.android.billingclient.api.queryPurchasesAsync
21
23
import dev.jahir.frames.data.listeners.BillingProcessesListener
22
24
import dev.jahir.frames.data.models.DetailedPurchaseRecord
23
25
import dev.jahir.frames.extensions.utils.asDetailedPurchase
@@ -61,7 +63,10 @@ class BillingViewModel(application: Application) : AndroidViewModel(application)
61
63
billingClient = BillingClient
62
64
.newBuilder(context)
63
65
.setListener(this )
64
- .enablePendingPurchases()
66
+ .enablePendingPurchases(
67
+ PendingPurchasesParams .newBuilder()
68
+ .enableOneTimeProducts().build()
69
+ )
65
70
.build()
66
71
billingClient?.startConnection(this )
67
72
}
@@ -94,6 +99,7 @@ class BillingViewModel(application: Application) : AndroidViewModel(application)
94
99
BillingClient .ProductType .INAPP -> {
95
100
inAppProductDetailsData.postValue(details)
96
101
}
102
+
97
103
BillingClient .ProductType .SUBS -> {
98
104
subscriptionsProductDetailsData.postValue(details)
99
105
}
@@ -147,6 +153,7 @@ class BillingViewModel(application: Application) : AndroidViewModel(application)
147
153
actualPurchases.sortedByDescending { it.purchaseTime }
148
154
)
149
155
}
156
+
150
157
BillingClient .ProductType .SUBS -> {
151
158
subscriptionsPurchasesHistoryData.postValue(
152
159
actualPurchases.sortedByDescending { it.purchaseTime }
@@ -170,9 +177,9 @@ class BillingViewModel(application: Application) : AndroidViewModel(application)
170
177
171
178
private suspend fun queryPurchasesHistory (@BillingClient.ProductType productType : String ) {
172
179
if (! isBillingClientReady) return
173
- val params = QueryPurchaseHistoryParams .newBuilder().setProductType(productType).build()
180
+ val params = QueryPurchasesParams .newBuilder().setProductType(productType).build()
174
181
withContext(IO ) {
175
- billingClient?.queryPurchaseHistoryAsync (params) { billingResult, purchaseHistoryRecordList ->
182
+ billingClient?.queryPurchasesAsync (params) { billingResult, purchaseHistoryRecordList ->
176
183
if (billingResult.responseCode == BillingClient .BillingResponseCode .OK ) {
177
184
postPurchasesHistory(productType,
178
185
purchaseHistoryRecordList.orEmpty()
0 commit comments