diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt index c1bef844f..a483ba254 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt @@ -103,14 +103,7 @@ open class PurchaseHandler( override fun onBillingSetupFinished(billingResult: BillingResult) { if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { billingClientState = BillingClientState.READY - billingClient.queryPurchasesAsync( - BillingClient.SkuType.SUBS, - this@PurchaseHandler - ) - billingClient.queryPurchasesAsync( - BillingClient.SkuType.INAPP, - this@PurchaseHandler - ) + queryPurchases() } else { billingClientState = BillingClientState.UNAVAILABLE } @@ -126,6 +119,19 @@ open class PurchaseHandler( billingClient.endConnection() } + fun queryPurchases(){ + if (billingClientState == BillingClientState.READY){ + billingClient.queryPurchasesAsync( + BillingClient.SkuType.SUBS, + this@PurchaseHandler + ) + billingClient.queryPurchasesAsync( + BillingClient.SkuType.INAPP, + this@PurchaseHandler + ) + } + } + suspend fun getAllGemSKUs(): List = getSKUs(BillingClient.SkuType.INAPP, PurchaseTypes.allGemTypes) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt index 92338baa9..18d2acacb 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/GemsPurchaseFragment.kt @@ -91,6 +91,7 @@ class GemsPurchaseFragment : BaseFragment() { override fun onResume() { super.onResume() + purchaseHandler.queryPurchases() loadInventory() } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt index 9af5d4993..8f8f9218f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt @@ -102,6 +102,7 @@ class SubscriptionFragment : BaseFragment() { override fun onResume() { super.onResume() + purchaseHandler.queryPurchases() refresh() loadInventory() } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt index eb8d949a4..4afdec55e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGemsDialog.kt @@ -49,6 +49,8 @@ class InsufficientGemsDialog(context: Context, var gemPrice: Int) : Insufficient addCloseButton() } + + override fun onAttachedToWindow() { super.onAttachedToWindow() getActivity()?.let { activity ->