forked from organicmaps/organicmaps
[android] Added parsing 'groups' parameter in 'subscribe' banner url withing bookmarks catalog
This commit is contained in:
parent
323ea46de6
commit
1a4892191d
4 changed files with 34 additions and 16 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue