From d9b0ce759d785b1b47e4cfee0938aad71a311bf0 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: Tue, 9 Jul 2019 18:27:31 +0300 Subject: [PATCH] [android] Added bookmark subscription validation on application start --- .../src/com/mapswithme/maps/MwmActivity.java | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 4afa151739..fd6c61652d 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -243,7 +243,9 @@ public class MwmActivity extends BaseMwmFragmentActivity @Nullable private PurchaseController mAdsRemovalPurchaseController; @Nullable - private PurchaseController mBookmarkPurchaseController; + private PurchaseController mBookmarkInappPurchaseController; + @Nullable + private PurchaseController mBookmarksSubscriptionController; @NonNull private final OnClickListener mOnMyPositionClickListener = new CurrentPositionClickListener(); @SuppressWarnings("NullableProblems") @@ -508,13 +510,7 @@ public class MwmActivity extends BaseMwmFragmentActivity SharingHelper.INSTANCE.initialize(); - mAdsRemovalPurchaseController = PurchaseFactory.createAdsRemovalPurchaseController(this); - mAdsRemovalPurchaseController.initialize(this); - mAdsRemovalPurchaseController.validateExistingPurchases(); - - mBookmarkPurchaseController = PurchaseFactory.createFailedBookmarkPurchaseController(this); - mBookmarkPurchaseController.initialize(this); - mBookmarkPurchaseController.validateExistingPurchases(); + initControllersAndValidatePurchases(savedInstanceState); boolean isConsumed = savedInstanceState == null && processIntent(getIntent()); // If the map activity is launched by any incoming intent (deeplink, update maps event, etc) @@ -533,6 +529,27 @@ public class MwmActivity extends BaseMwmFragmentActivity tryToShowAdditionalViewOnTop(); } + private void initControllersAndValidatePurchases(@Nullable Bundle savedInstanceState) + { + mAdsRemovalPurchaseController = PurchaseFactory.createAdsRemovalPurchaseController(this); + mAdsRemovalPurchaseController.initialize(this); + + mBookmarkInappPurchaseController = PurchaseFactory.createFailedBookmarkPurchaseController(this); + mBookmarkInappPurchaseController.initialize(this); + + mBookmarksSubscriptionController + = PurchaseFactory.createBookmarksSubscriptionPurchaseController(this); + mBookmarksSubscriptionController.initialize(this); + + // To reduce number of parasite validation requests during orientation change. + if (savedInstanceState == null) + { + mAdsRemovalPurchaseController.validateExistingPurchases(); + mBookmarkInappPurchaseController.validateExistingPurchases(); + mBookmarksSubscriptionController.validateExistingPurchases(); + } + } + private void initViews(boolean isLaunchByDeeplink) { initMap(isLaunchByDeeplink); @@ -1298,8 +1315,10 @@ public class MwmActivity extends BaseMwmFragmentActivity super.onSafeDestroy(); if (mAdsRemovalPurchaseController != null) mAdsRemovalPurchaseController.destroy(); - if (mBookmarkPurchaseController != null) - mBookmarkPurchaseController.destroy(); + if (mBookmarkInappPurchaseController != null) + mBookmarkInappPurchaseController.destroy(); + if (mBookmarksSubscriptionController != null) + mBookmarksSubscriptionController.destroy(); mNavigationController.destroy(); mToggleMapLayerController.detachCore();