diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java b/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java index 352da45b72..49aa8496c8 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java @@ -37,12 +37,14 @@ import com.mapswithme.maps.dialog.ConfirmationDialogFactory; import com.mapswithme.maps.metrics.UserActionsLogger; import com.mapswithme.maps.purchase.AbstractProductDetailsLoadingCallback; import com.mapswithme.maps.purchase.BillingManager; -import com.mapswithme.maps.purchase.BookmarkSubscriptionActivity; +import com.mapswithme.maps.purchase.BookmarksAllSubscriptionActivity; +import com.mapswithme.maps.purchase.BookmarksSightsSubscriptionActivity; import com.mapswithme.maps.purchase.FailedPurchaseChecker; import com.mapswithme.maps.purchase.PlayStoreBillingCallback; import com.mapswithme.maps.purchase.PurchaseController; import com.mapswithme.maps.purchase.PurchaseFactory; import com.mapswithme.maps.purchase.PurchaseUtils; +import com.mapswithme.maps.purchase.SubscriptionType; import com.mapswithme.util.ConnectionState; import com.mapswithme.util.CrashlyticsUtils; import com.mapswithme.util.HttpClient; @@ -374,21 +376,28 @@ public class BookmarksCatalogFragment extends BaseWebViewMwmFragment { if (TextUtils.equals(each, SUBSCRIBE_PATH_SEGMENT)) { - openSubscriptionScreen(); + String group = PurchaseUtils.getTargetBookmarkGroupFromUri(uri); + openSubscriptionScreen(SubscriptionType.getTypeByBookmarksGroup(group)); return true; } } return result; } - private void openSubscriptionScreen() + private void openSubscriptionScreen(@NonNull SubscriptionType type) { BookmarksCatalogFragment frag = mReference.get(); if (frag == null || frag.getActivity() == null) return; - BookmarkSubscriptionActivity.startForResult(frag, PurchaseUtils.REQ_CODE_PAY_SUBSCRIPTION, - Statistics.ParamValue.WEBVIEW); + if (type.equals(SubscriptionType.BOOKMARKS_ALL)) + BookmarksAllSubscriptionActivity.startForResult(frag, + PurchaseUtils.REQ_CODE_PAY_SUBSCRIPTION, + Statistics.ParamValue.WEBVIEW); + else + BookmarksSightsSubscriptionActivity.startForResult(frag, + PurchaseUtils.REQ_CODE_PAY_SUBSCRIPTION, + Statistics.ParamValue.WEBVIEW); } @Override diff --git a/android/src/com/mapswithme/maps/purchase/BookmarkPaymentFragment.java b/android/src/com/mapswithme/maps/purchase/BookmarkPaymentFragment.java index 1198fd5a5c..cb9f8efabf 100644 --- a/android/src/com/mapswithme/maps/purchase/BookmarkPaymentFragment.java +++ b/android/src/com/mapswithme/maps/purchase/BookmarkPaymentFragment.java @@ -110,20 +110,17 @@ public class BookmarkPaymentFragment extends BaseMwmFragment private void onBuySubscriptionClicked() { - String bookmarksGroup = mPaymentData.getGroup(); + SubscriptionType type = SubscriptionType.getTypeByBookmarksGroup(mPaymentData.getGroup()); - if (bookmarksGroup.equals(SubscriptionType.BOOKMARKS_SIGHTS.getServerId())) + if (type.equals(SubscriptionType.BOOKMARKS_SIGHTS)) { BookmarksSightsSubscriptionActivity.startForResult (this, PurchaseUtils.REQ_CODE_PAY_SUBSCRIPTION, Statistics.ParamValue.CARD); return; } - if (bookmarksGroup.equals(SubscriptionType.BOOKMARKS_ALL.getServerId())) - { - BookmarksAllSubscriptionActivity.startForResult - (this, PurchaseUtils.REQ_CODE_PAY_SUBSCRIPTION, Statistics.ParamValue.CARD); - } + BookmarksAllSubscriptionActivity.startForResult + (this, PurchaseUtils.REQ_CODE_PAY_SUBSCRIPTION, Statistics.ParamValue.CARD); } @Override @@ -340,7 +337,7 @@ public class BookmarkPaymentFragment extends BaseMwmFragment } } - public void updateProductDetails() + void updateProductDetails() { if (mProductDetails == null) throw new AssertionError("Product details must be obtained at this moment!"); @@ -353,7 +350,7 @@ public class BookmarkPaymentFragment extends BaseMwmFragment storeName.setText(mProductDetails.getTitle()); } - public void updateSubsProductDetails() + void updateSubsProductDetails() { if (mSubsProductDetails == null) throw new AssertionError("Subs product details must be obtained at this moment!"); @@ -364,7 +361,7 @@ public class BookmarkPaymentFragment extends BaseMwmFragment subsButton.setText(getString(R.string.buy_btn_for_subscription_version_2, formattedPrice)); } - public void finishValidation() + void finishValidation() { if (mValidationResult) requireActivity().setResult(Activity.RESULT_OK); diff --git a/android/src/com/mapswithme/maps/purchase/PurchaseUtils.java b/android/src/com/mapswithme/maps/purchase/PurchaseUtils.java index 2d5470b6d0..3626590716 100644 --- a/android/src/com/mapswithme/maps/purchase/PurchaseUtils.java +++ b/android/src/com/mapswithme/maps/purchase/PurchaseUtils.java @@ -181,7 +181,7 @@ public class PurchaseUtils } @NonNull - static String getTargetBookmarkGroupFromUri(@NonNull Uri uri) + public static String getTargetBookmarkGroupFromUri(@NonNull Uri uri) { List uriGroups = uri.getQueryParameters(BookmarkPaymentDataParser.GROUPS); if (uriGroups == null || uriGroups.isEmpty()) diff --git a/android/src/com/mapswithme/maps/purchase/SubscriptionType.java b/android/src/com/mapswithme/maps/purchase/SubscriptionType.java index 4a20b27941..73777dd169 100644 --- a/android/src/com/mapswithme/maps/purchase/SubscriptionType.java +++ b/android/src/com/mapswithme/maps/purchase/SubscriptionType.java @@ -139,4 +139,16 @@ public enum SubscriptionType @NonNull abstract String getMonthlyProductId(); + + @NonNull + public static SubscriptionType getTypeByBookmarksGroup(@NonNull String group) + { + for (SubscriptionType type : values()) + { + if (type.getServerId().equals(group)) + return type; + } + + return BOOKMARKS_ALL; + } }