[android] Added parsing 'groups' parameter in 'subscribe' banner url withing bookmarks catalog

This commit is contained in:
Александр Зацепин 2019-11-14 18:36:37 +03:00 committed by yoksnod
parent 323ea46de6
commit 1a4892191d
4 changed files with 34 additions and 16 deletions

View file

@ -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

View file

@ -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);

View file

@ -181,7 +181,7 @@ public class PurchaseUtils
}
@NonNull
static String getTargetBookmarkGroupFromUri(@NonNull Uri uri)
public static String getTargetBookmarkGroupFromUri(@NonNull Uri uri)
{
List<String> uriGroups = uri.getQueryParameters(BookmarkPaymentDataParser.GROUPS);
if (uriGroups == null || uriGroups.isEmpty())

View file

@ -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;
}
}