diff options
author | Alexander Zatsepin <az@mapswithme.com> | 2018-09-28 12:45:17 +0300 |
---|---|---|
committer | yoksnod <donskdmitry@mail.ru> | 2018-09-28 13:39:29 +0300 |
commit | 0f6e797f4c2a9bb70a4b1ffb2bf3a6ecb7ad03ec (patch) | |
tree | badb5325fedad4f112c423db589a14cbe100f332 | |
parent | 83a5b3d0d61643a2a447589a810e82ae05e8da65 (diff) |
[android] Added careful handling of play store connection failure
5 files changed, 17 insertions, 1 deletions
diff --git a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseCallback.java b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseCallback.java index dfdcc4e22c..337e3888f6 100644 --- a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseCallback.java +++ b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseCallback.java @@ -12,6 +12,7 @@ public interface AdsRemovalPurchaseCallback void onProductDetailsLoaded(@NonNull List<SkuDetails> details); void onPaymentFailure(@BillingClient.BillingResponse int error); void onProductDetailsFailure(); + void onStoreConnectionFailed(); void onValidationStarted(); void onValidationStatusObtained(@NonNull AdsRemovalValidationStatus status); } diff --git a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseController.java b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseController.java index 28999cf67d..4fc2de19dd 100644 --- a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseController.java +++ b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseController.java @@ -114,6 +114,13 @@ class AdsRemovalPurchaseController extends AbstractPurchaseController<AdsRemoval } @Override + public void onStoreConnectionFailed() + { + if (getUiCallback() != null) + getUiCallback().onStoreConnectionFailed(); + } + + @Override public void onPurchasesLoaded(@NonNull List<Purchase> purchases) { String purchaseData = null; diff --git a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java index 70fb794315..14e6ae2c67 100644 --- a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java +++ b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java @@ -350,6 +350,12 @@ public class AdsRemovalPurchaseDialog extends BaseMwmDialogFragment implements A } @Override + public void onStoreConnectionFailed() + { + activateStateSafely(AdsRemovalPaymentState.PRODUCT_DETAILS_FAILURE); + } + + @Override public void onValidationStarted() { Statistics.INSTANCE.trackEvent(Statistics.EventName.INAPP_PURCHASE_STORE_SUCCESS); diff --git a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingCallback.java b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingCallback.java index 3c8fc53f1d..194799082a 100644 --- a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingCallback.java +++ b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingCallback.java @@ -14,5 +14,6 @@ public interface PlayStoreBillingCallback void onPurchaseSuccessful(@NonNull List<Purchase> purchases); void onPurchaseFailure(@BillingClient.BillingResponse int error); void onPurchaseDetailsFailure(); + void onStoreConnectionFailed(); void onPurchasesLoaded(@NonNull List<Purchase> purchases); } diff --git a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java index 5cb5a06ca6..d8e526ea7f 100644 --- a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java +++ b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java @@ -182,11 +182,12 @@ class PlayStoreBillingManager implements BillingManager<PlayStoreBillingCallback @Override public void onDisconnected() { + LOGGER.w(TAG, "Play store connection failed."); if (mPendingRequests.isEmpty()) return; mPendingRequests.clear(); if (mCallback != null) - mCallback.onPurchaseFailure(BillingResponse.SERVICE_DISCONNECTED); + mCallback.onStoreConnectionFailed(); } } |