From 9e40b3afecfa039a16eb7b311f5b8289d8ac5509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B0=D1=86=D0=B5=D0=BF=D0=B8=D0=BD?= Date: Wed, 5 Dec 2018 23:53:15 +0300 Subject: [PATCH] [android] Removed redundant code regarding purchase and wrong querying product details --- .../purchase/AdsRemovalPurchaseDialog.java | 2 +- .../purchase/PlayStoreBillingManager.java | 16 +-- .../maps/purchase/PurchaseFactory.java | 2 +- .../purchase/QueryProductDetailsRequest.java | 18 ++- .../SubscriptionPlayStoreBillingManager.java | 104 ------------------ android/src/com/mapswithme/util/Utils.java | 3 +- 6 files changed, 22 insertions(+), 123 deletions(-) delete mode 100644 android/src/com/mapswithme/maps/purchase/SubscriptionPlayStoreBillingManager.java diff --git a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java index 73ef719149..f3a417f7ec 100644 --- a/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java +++ b/android/src/com/mapswithme/maps/purchase/AdsRemovalPurchaseDialog.java @@ -467,7 +467,7 @@ public class AdsRemovalPurchaseDialog extends BaseMwmDialogFragment P1W; @Nullable - public static Period getInstance(@Nullable String subscriptionPeriod) + static Period getInstance(@Nullable String subscriptionPeriod) { for (Period each : values()) { diff --git a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java index c423f4e53f..f04d02420b 100644 --- a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java +++ b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java @@ -40,18 +40,6 @@ class PlayStoreBillingManager implements BillingManager billingManager - = new SubscriptionPlayStoreBillingManager(BillingClient.SkuType.SUBS); + = new PlayStoreBillingManager(BillingClient.SkuType.SUBS); PurchaseValidationObservable observable = PurchaseValidationObservable.from(context); PurchaseValidator validator = new DefaultPurchaseValidator(observable); String yearlyProduct = PrivateVariables.adsRemovalYearlyProductId(); diff --git a/android/src/com/mapswithme/maps/purchase/QueryProductDetailsRequest.java b/android/src/com/mapswithme/maps/purchase/QueryProductDetailsRequest.java index 68b0593a5b..c0c7dce823 100644 --- a/android/src/com/mapswithme/maps/purchase/QueryProductDetailsRequest.java +++ b/android/src/com/mapswithme/maps/purchase/QueryProductDetailsRequest.java @@ -6,6 +6,7 @@ import android.support.annotation.Nullable; import com.android.billingclient.api.BillingClient; import com.android.billingclient.api.SkuDetails; import com.android.billingclient.api.SkuDetailsParams; +import com.mapswithme.util.CrashlyticsUtils; import java.util.Collections; import java.util.List; @@ -48,7 +49,7 @@ class QueryProductDetailsRequest extends PlayStoreBillingRequest skuDetails) + private static boolean hasIncorrectSkuDetails(@NonNull List skuDetails) { for (SkuDetails each : skuDetails) { if (AdsRemovalPurchaseDialog.Period.getInstance(each.getSubscriptionPeriod()) == null) + { + String msg = "Unsupported subscription period: '" + each.getSubscriptionPeriod() + "'"; + CrashlyticsUtils.logException(new IllegalStateException(msg)); + LOGGER.e(TAG, msg); return true; + } } return false; } diff --git a/android/src/com/mapswithme/maps/purchase/SubscriptionPlayStoreBillingManager.java b/android/src/com/mapswithme/maps/purchase/SubscriptionPlayStoreBillingManager.java deleted file mode 100644 index a9dfafe3f8..0000000000 --- a/android/src/com/mapswithme/maps/purchase/SubscriptionPlayStoreBillingManager.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.mapswithme.maps.purchase; - -import android.support.annotation.NonNull; - -import com.android.billingclient.api.Purchase; -import com.android.billingclient.api.SkuDetails; - -import java.util.List; - -class SubscriptionPlayStoreBillingManager extends PlayStoreBillingManager -{ - SubscriptionPlayStoreBillingManager(@NonNull String productType) - { - super(productType); - } - - @Override - public void queryProductDetails(@NonNull List productIds) - { - executeBillingRequest(new QueryExistingPurchases(getClientOrThrow(), getProductType(), - new QueryExistingPurchaseCallback(productIds))); - } - - private class QueryExistingPurchaseCallback implements PlayStoreBillingCallback - { - @NonNull - private final List mProductIds; - - public QueryExistingPurchaseCallback(@NonNull List productIds) - { - mProductIds = productIds; - } - - @Override - public void onPurchaseDetailsLoaded(@NonNull List details) - { - if (getCallback() != null) - getCallback().onPurchaseDetailsLoaded(details); - } - - @Override - public void onPurchaseSuccessful(@NonNull List purchases) - { - if (getCallback() != null) - getCallback().onPurchaseSuccessful(purchases); - } - - @Override - public void onPurchaseFailure(int error) - { - if (getCallback() != null) - getCallback().onPurchaseFailure(error); - } - - @Override - public void onPurchaseDetailsFailure() - { - if (getCallback() != null) - getCallback().onPurchaseDetailsFailure(); - } - - @Override - public void onStoreConnectionFailed() - { - if (getCallback() != null) - getCallback().onStoreConnectionFailed(); - } - - @Override - public void onPurchasesLoaded(@NonNull List purchases) - { - if (purchases.isEmpty()) - launchDefaultFlow(); - else - validateExistingPurchases(purchases); - } - - private void validateExistingPurchases(@NonNull List purchases) - { - if (getCallback() != null) - getCallback().onPurchasesLoaded(purchases); - } - - private void launchDefaultFlow() - { - executeBillingRequest(new QueryProductDetailsRequest(getClientOrThrow(), getProductType(), - getCallback(), mProductIds)); - } - - @Override - public void onConsumptionSuccess() - { - if (getCallback() != null) - getCallback().onConsumptionSuccess(); - } - - @Override - public void onConsumptionFailure() - { - if (getCallback() != null) - getCallback().onConsumptionFailure(); - } - } -} diff --git a/android/src/com/mapswithme/util/Utils.java b/android/src/com/mapswithme/util/Utils.java index 057ccb37a8..67a2a94252 100644 --- a/android/src/com/mapswithme/util/Utils.java +++ b/android/src/com/mapswithme/util/Utils.java @@ -684,7 +684,8 @@ public class Utils } } - public static T[] concatArrays(T[] a, T... b) + @NonNull + public static T[] concatArrays(@Nullable T[] a, T... b) { if (a == null || a.length == 0) return b;