Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Zatsepin <az@mapswithme.com>2018-09-28 12:45:17 +0300
committeryoksnod <donskdmitry@mail.ru>2018-09-28 13:39:29 +0300
commit0f6e797f4c2a9bb70a4b1ffb2bf3a6ecb7ad03ec (patch)
treebadb5325fedad4f112c423db589a14cbe100f332
parent83a5b3d0d61643a2a447589a810e82ae05e8da65 (diff)
[android] Added careful handling of play store connection failure
-rw-r--r--android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseCallback.java1
-rw-r--r--android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseController.java7
-rw-r--r--android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java6
-rw-r--r--android/src/com/mapswithme/maps/purchase/PlayStoreBillingCallback.java1
-rw-r--r--android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java3
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();
}
}