diff --git a/android/src/com/mapswithme/maps/purchase/DefaultSkuDetailsValidationStrategy.java b/android/src/com/mapswithme/maps/purchase/DefaultSkuDetailsValidationStrategy.java deleted file mode 100644 index 89aec10ab3..0000000000 --- a/android/src/com/mapswithme/maps/purchase/DefaultSkuDetailsValidationStrategy.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mapswithme.maps.purchase; - -import android.support.annotation.Nullable; - -import com.android.billingclient.api.SkuDetails; - -import java.util.List; - -public class DefaultSkuDetailsValidationStrategy implements SkuDetailsValidationStrategy -{ - @Override - public boolean isValid(@Nullable List skuDetails) - { - return skuDetails != null && !skuDetails.isEmpty(); - } -} diff --git a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java index 49bfc79de6..f04d02420b 100644 --- a/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java +++ b/android/src/com/mapswithme/maps/purchase/PlayStoreBillingManager.java @@ -29,19 +29,15 @@ class PlayStoreBillingManager implements BillingManager mPendingRequests = new ArrayList<>(); - PlayStoreBillingManager(@NonNull @BillingClient.SkuType String productType, - @NonNull SkuDetailsValidationStrategy strategy) + PlayStoreBillingManager(@NonNull @BillingClient.SkuType String productType) { mProductType = productType; - mSkuDetailsValidationStrategy = strategy; } @Override @@ -66,8 +62,7 @@ class PlayStoreBillingManager implements BillingManager productIds) { executeBillingRequest(new QueryProductDetailsRequest(getClientOrThrow(), mProductType, - mCallback, productIds, - mSkuDetailsValidationStrategy)); + mCallback, productIds)); } @Override diff --git a/android/src/com/mapswithme/maps/purchase/PurchaseFactory.java b/android/src/com/mapswithme/maps/purchase/PurchaseFactory.java index 8b79f01e0d..63eb2d46bd 100644 --- a/android/src/com/mapswithme/maps/purchase/PurchaseFactory.java +++ b/android/src/com/mapswithme/maps/purchase/PurchaseFactory.java @@ -21,8 +21,7 @@ public class PurchaseFactory @NonNull Context context) { BillingManager billingManager - = new PlayStoreBillingManager(BillingClient.SkuType.SUBS, - new SubscriptionSkuDetailsValidationStrategy()); + = new PlayStoreBillingManager(BillingClient.SkuType.SUBS); PurchaseValidationObservable observable = PurchaseValidationObservable.from(context); PurchaseValidator validator = new DefaultPurchaseValidator(observable); String yearlyProduct = PrivateVariables.adsRemovalYearlyProductId(); @@ -38,8 +37,7 @@ public class PurchaseFactory @NonNull Context context, @Nullable String productId, @Nullable String serverId) { BillingManager billingManager - = new PlayStoreBillingManager(BillingClient.SkuType.INAPP, - new DefaultSkuDetailsValidationStrategy()); + = new PlayStoreBillingManager(BillingClient.SkuType.INAPP); PurchaseValidationObservable observable = PurchaseValidationObservable.from(context); PurchaseValidator validator = new DefaultPurchaseValidator(observable); return new BookmarkPurchaseController(validator, billingManager, productId, serverId); @@ -57,8 +55,7 @@ public class PurchaseFactory @NonNull Context context) { BillingManager billingManager - = new PlayStoreBillingManager(BillingClient.SkuType.INAPP, - new DefaultSkuDetailsValidationStrategy()); + = new PlayStoreBillingManager(BillingClient.SkuType.INAPP); PurchaseValidationObservable observable = PurchaseValidationObservable.from(context); PurchaseValidator validator = new DefaultPurchaseValidator(observable); return new FailedBookmarkPurchaseController(validator, billingManager); diff --git a/android/src/com/mapswithme/maps/purchase/QueryProductDetailsRequest.java b/android/src/com/mapswithme/maps/purchase/QueryProductDetailsRequest.java index 7fd66d8cac..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; @@ -56,8 +57,31 @@ class QueryProductDetailsRequest extends PlayStoreBillingRequest 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/SkuDetailsValidationStrategy.java b/android/src/com/mapswithme/maps/purchase/SkuDetailsValidationStrategy.java deleted file mode 100644 index 22de967c82..0000000000 --- a/android/src/com/mapswithme/maps/purchase/SkuDetailsValidationStrategy.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.mapswithme.maps.purchase; - -import android.support.annotation.Nullable; - -import com.android.billingclient.api.SkuDetails; - -import java.util.List; - -public interface SkuDetailsValidationStrategy -{ - boolean isValid(@Nullable List skuDetails); -} diff --git a/android/src/com/mapswithme/maps/purchase/SubscriptionSkuDetailsValidationStrategy.java b/android/src/com/mapswithme/maps/purchase/SubscriptionSkuDetailsValidationStrategy.java deleted file mode 100644 index 69ef53e00f..0000000000 --- a/android/src/com/mapswithme/maps/purchase/SubscriptionSkuDetailsValidationStrategy.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.mapswithme.maps.purchase; - -import android.support.annotation.Nullable; - -import com.android.billingclient.api.SkuDetails; -import com.mapswithme.util.CrashlyticsUtils; - -import java.util.List; - -import static com.mapswithme.maps.purchase.PlayStoreBillingManager.LOGGER; -import static com.mapswithme.maps.purchase.PlayStoreBillingManager.TAG; - -public class SubscriptionSkuDetailsValidationStrategy extends DefaultSkuDetailsValidationStrategy -{ - @Override - public boolean isValid(@Nullable List skuDetails) - { - boolean hasDetails = super.isValid(skuDetails); - return hasDetails && !hasIncorrectSkuDetails(skuDetails) ; - } - - private static boolean hasIncorrectSkuDetails(@Nullable List skuDetails) - { - if (skuDetails == null) - return true; - - 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; - } -}