|
|
@ -13,10 +13,11 @@ import com.android.billingclient.api.BillingFlowParams.SubscriptionUpdateParams
|
|
|
|
import com.android.billingclient.api.BillingResult
|
|
|
|
import com.android.billingclient.api.BillingResult
|
|
|
|
import com.android.billingclient.api.ConsumeParams
|
|
|
|
import com.android.billingclient.api.ConsumeParams
|
|
|
|
import com.android.billingclient.api.Purchase.PurchaseState
|
|
|
|
import com.android.billingclient.api.Purchase.PurchaseState
|
|
|
|
import com.android.billingclient.api.Purchase.PurchasesResult
|
|
|
|
import com.android.billingclient.api.PurchasesResult
|
|
|
|
import com.android.billingclient.api.PurchasesUpdatedListener
|
|
|
|
import com.android.billingclient.api.PurchasesUpdatedListener
|
|
|
|
import com.android.billingclient.api.SkuDetailsParams
|
|
|
|
import com.android.billingclient.api.SkuDetailsParams
|
|
|
|
import com.android.billingclient.api.consumePurchase
|
|
|
|
import com.android.billingclient.api.consumePurchase
|
|
|
|
|
|
|
|
import com.android.billingclient.api.queryPurchasesAsync
|
|
|
|
import com.android.billingclient.api.querySkuDetails
|
|
|
|
import com.android.billingclient.api.querySkuDetails
|
|
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
|
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
@ -48,8 +49,8 @@ class BillingClientImpl(
|
|
|
|
override suspend fun queryPurchases(throwError: Boolean) = try {
|
|
|
|
override suspend fun queryPurchases(throwError: Boolean) = try {
|
|
|
|
executeServiceRequest {
|
|
|
|
executeServiceRequest {
|
|
|
|
withContext(Dispatchers.IO + NonCancellable) {
|
|
|
|
withContext(Dispatchers.IO + NonCancellable) {
|
|
|
|
val subs = billingClient.queryPurchases(SkuType.SUBS)
|
|
|
|
val subs = billingClient.queryPurchasesAsync(SkuType.SUBS)
|
|
|
|
val iaps = billingClient.queryPurchases(SkuType.INAPP)
|
|
|
|
val iaps = billingClient.queryPurchasesAsync(SkuType.INAPP)
|
|
|
|
if (subs.success || iaps.success) {
|
|
|
|
if (subs.success || iaps.success) {
|
|
|
|
withContext(Dispatchers.Main) {
|
|
|
|
withContext(Dispatchers.Main) {
|
|
|
|
inventory.clear()
|
|
|
|
inventory.clear()
|
|
|
@ -198,7 +199,7 @@ class BillingClientImpl(
|
|
|
|
const val STATE_PURCHASED = PurchaseState.PURCHASED
|
|
|
|
const val STATE_PURCHASED = PurchaseState.PURCHASED
|
|
|
|
|
|
|
|
|
|
|
|
private val PurchasesResult.success: Boolean
|
|
|
|
private val PurchasesResult.success: Boolean
|
|
|
|
get() = responseCode == BillingResponseCode.OK
|
|
|
|
get() = billingResult.responseCode == BillingResponseCode.OK
|
|
|
|
|
|
|
|
|
|
|
|
private val BillingResult.success: Boolean
|
|
|
|
private val BillingResult.success: Boolean
|
|
|
|
get() = responseCode == BillingResponseCode.OK
|
|
|
|
get() = responseCode == BillingResponseCode.OK
|
|
|
@ -231,6 +232,6 @@ class BillingClientImpl(
|
|
|
|
get() = billingResult.responseCodeString
|
|
|
|
get() = billingResult.responseCodeString
|
|
|
|
|
|
|
|
|
|
|
|
private val PurchasesResult.purchases: List<com.android.billingclient.api.Purchase>
|
|
|
|
private val PurchasesResult.purchases: List<com.android.billingclient.api.Purchase>
|
|
|
|
get() = purchasesList ?: emptyList()
|
|
|
|
get() = purchasesList
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|