diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java b/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java index b0132ad7a3..13b0931285 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarksCatalogFragment.java @@ -2,8 +2,8 @@ package com.mapswithme.maps.bookmarks; import android.annotation.SuppressLint; import android.annotation.TargetApi; +import android.app.Activity; import android.content.Intent; -import android.net.Uri; import android.net.http.SslError; import android.os.Build; import android.os.Bundle; @@ -66,6 +66,8 @@ public class BookmarksCatalogFragment extends BaseWebViewMwmFragment private static final String FAILED_PURCHASE_DIALOG_TAG = "failed_purchase_dialog_tag"; private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.BILLING); private static final String TAG = BookmarksCatalogFragment.class.getSimpleName(); + static final int REQ_CODE_PAY_SUBSCRIPTION = 1; + static final int REQ_CODE_PAY_BOOKMARK = 2; @SuppressWarnings("NullableProblems") @NonNull private WebViewBookmarksCatalogClient mWebViewClient; @@ -160,7 +162,7 @@ public class BookmarksCatalogFragment extends BaseWebViewMwmFragment private void onRetryClick() { mWebViewClient.retry(); - UiUtils.hide(mRetryBtn); + UiUtils.hide(mRetryBtn, mWebView); UiUtils.show(mProgressView); mFailedPurchaseController.validateExistingPurchases(); } @@ -211,6 +213,14 @@ public class BookmarksCatalogFragment extends BaseWebViewMwmFragment { super.onActivityResult(requestCode, resultCode, data); mDelegate.onActivityResult(requestCode, resultCode, data); + + if (resultCode != Activity.RESULT_OK) + return; + + if (requestCode != REQ_CODE_PAY_SUBSCRIPTION) + return; + + onRetryClick(); } @Override @@ -318,7 +328,7 @@ public class BookmarksCatalogFragment extends BaseWebViewMwmFragment if (frag == null || frag.getActivity() == null) return; - frag.startActivity(new Intent(frag.requireContext(), BookmarkSubscriptionActivity.class)); + BookmarkSubscriptionActivity.startForResult(frag, REQ_CODE_PAY_SUBSCRIPTION); } @Override diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarksDownloadFragmentDelegate.java b/android/src/com/mapswithme/maps/bookmarks/BookmarksDownloadFragmentDelegate.java index f5c8573a88..ba20ff12d1 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarksDownloadFragmentDelegate.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarksDownloadFragmentDelegate.java @@ -25,7 +25,6 @@ import com.mapswithme.maps.purchase.BookmarkPaymentActivity; class BookmarksDownloadFragmentDelegate implements Authorizer.Callback, BookmarkDownloadCallback, TargetFragmentCallback { - public static final int REQ_CODE_SUBSCRIPTION_ACTIVITY = 301; private final static int REQ_CODE_PAY_BOOKMARK = 1; private static final int REQ_CODE_CHECK_INVALID_SUBS_DIALOG = 300; private static final String CHECK_INVALID_SUBS_DIALOG_TAG = "check_invalid_subs_dialog_tag"; @@ -95,9 +94,12 @@ class BookmarksDownloadFragmentDelegate implements Authorizer.Callback, Bookmark public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (resultCode == Activity.RESULT_OK && requestCode == REQ_CODE_SUBSCRIPTION_ACTIVITY) + if (resultCode == Activity.RESULT_OK && requestCode == BookmarksCatalogFragment.REQ_CODE_PAY_SUBSCRIPTION) BookmarkManager.INSTANCE.resetInvalidCategories(); + if (requestCode != BookmarksCatalogFragment.REQ_CODE_PAY_BOOKMARK) + return; + if (resultCode == Activity.RESULT_OK && requestCode == REQ_CODE_PAY_BOOKMARK) mDownloadController.retryDownloadBookmark(); else if (requestCode == REQ_CODE_PAY_BOOKMARK) @@ -165,7 +167,7 @@ class BookmarksDownloadFragmentDelegate implements Authorizer.Callback, Bookmark @Override public void onPaymentRequired(@NonNull PaymentData data) { - BookmarkPaymentActivity.startForResult(mFragment, data, REQ_CODE_PAY_BOOKMARK); + BookmarkPaymentActivity.startForResult(mFragment, data, BookmarksCatalogFragment.REQ_CODE_PAY_BOOKMARK); } @Override diff --git a/android/src/com/mapswithme/maps/purchase/BookmarkSubscriptionActivity.java b/android/src/com/mapswithme/maps/purchase/BookmarkSubscriptionActivity.java index cf70b87769..af24618a4d 100644 --- a/android/src/com/mapswithme/maps/purchase/BookmarkSubscriptionActivity.java +++ b/android/src/com/mapswithme/maps/purchase/BookmarkSubscriptionActivity.java @@ -26,4 +26,11 @@ public class BookmarkSubscriptionActivity extends BaseMwmFragmentActivity Intent intent = new Intent(context, BookmarkSubscriptionActivity.class); context.startActivity(intent); } + + public static void startForResult(@NonNull Fragment fragment, int requestCode) + { + Intent intent = new Intent(fragment.getActivity(), BookmarkSubscriptionActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + fragment.startActivityForResult(intent, requestCode); + } }