diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index 54155d25cc..2b349666b8 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -2190,9 +2190,9 @@ Java_com_mapswithme_maps_Framework_nativeSetActiveSubscription(JNIEnv *, jclass, auto const & purchase = frm()->GetPurchase(); if (purchase == nullptr) return; - // TODO: @milchakov pass the 'isTrial' parameter to the purchase please. - purchase->SetSubscriptionEnabled(static_cast(type), - static_cast(isActive)); + + purchase->SetSubscriptionEnabled(static_cast(type), static_cast(isActive), + static_cast(isTrial)); } JNIEXPORT jint JNICALL diff --git a/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm b/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm index 21c2522dad..9e8a02a105 100644 --- a/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm +++ b/iphone/Maps/Core/Subscriptions/MWMPurchaseManager.mm @@ -194,15 +194,15 @@ } + (void)setAdsDisabled:(BOOL)disabled { - GetFramework().GetPurchase()->SetSubscriptionEnabled(SubscriptionType::RemoveAds, disabled); + GetFramework().GetPurchase()->SetSubscriptionEnabled(SubscriptionType::RemoveAds, disabled, false); } + (void)setBookmarksSubscriptionActive:(BOOL)active { - GetFramework().GetPurchase()->SetSubscriptionEnabled(SubscriptionType::BookmarksSights, active); + GetFramework().GetPurchase()->SetSubscriptionEnabled(SubscriptionType::BookmarksSights, active, false); } + (void)setAllPassSubscriptionActive:(BOOL)active { - GetFramework().GetPurchase()->SetSubscriptionEnabled(SubscriptionType::BookmarksAll, active); + GetFramework().GetPurchase()->SetSubscriptionEnabled(SubscriptionType::BookmarksAll, active, false); } #pragma mark - SKRequestDelegate diff --git a/map/purchase.cpp b/map/purchase.cpp index 63ff12607a..b5cb603c52 100644 --- a/map/purchase.cpp +++ b/map/purchase.cpp @@ -39,11 +39,6 @@ std::array(SubscriptionType::Count)> const kSub "_BookmarksSights" // bookmarks city }; -std::array(SubscriptionType::Count)> const kTrialSuffix = - { - "_BookmarksAllTrial", // removeAds (empty string for back compatibility) - }; - uint32_t constexpr kFirstWaitingTimeInSec = 1; uint32_t constexpr kWaitingTimeScaleFactor = 2; uint8_t constexpr kMaxAttemptIndex = 2; @@ -186,7 +181,7 @@ bool Purchase::IsSubscriptionActive(SubscriptionType type) const return m_subscriptionData[base::Underlying(type)]->m_isActive; } -void Purchase::SetSubscriptionEnabled(SubscriptionType type, bool isEnabled) +void Purchase::SetSubscriptionEnabled(SubscriptionType type, bool isEnabled, bool isTrialActive) { CHECK(type != SubscriptionType::Count, ()); @@ -201,6 +196,11 @@ void Purchase::SetSubscriptionEnabled(SubscriptionType type, bool isEnabled) listener->OnSubscriptionChanged(type, isEnabled); auto const nowStr = GetPlatform().GetMarketingService().GetPushWooshTimestamp(); + if (isTrialActive) + { + GetPlatform().GetMarketingService().SendPushWooshTag( + marketing::kSubscriptionBookmarksAllTrialEnabled, nowStr); + } if (type == SubscriptionType::BookmarksSights) { GetPlatform().GetMarketingService().SendPushWooshTag(isEnabled ? diff --git a/map/purchase.hpp b/map/purchase.hpp index 0c4cebd65d..2d7de6eec8 100644 --- a/map/purchase.hpp +++ b/map/purchase.hpp @@ -73,7 +73,7 @@ public: void RegisterSubscription(SubscriptionListener * listener); bool IsSubscriptionActive(SubscriptionType type) const; - void SetSubscriptionEnabled(SubscriptionType type, bool isEnabled); + void SetSubscriptionEnabled(SubscriptionType type, bool isEnabled, bool isTrialActive); void SetValidationCallback(ValidationCallback && callback); void Validate(ValidationInfo const & validationInfo, std::string const & accessToken); diff --git a/platform/marketing_service.cpp b/platform/marketing_service.cpp index d5edefe1ee..9d5e519d15 100644 --- a/platform/marketing_service.cpp +++ b/platform/marketing_service.cpp @@ -37,6 +37,8 @@ char const * const kSubscriptionBookmarksSightsDisabled = char const * const kRemoveAdsSubscriptionEnabled = "remove_ads_subscription_enabled"; char const * const kRemoveAdsSubscriptionDisabled = "remove_ads_subscription_disabled"; char const * const kSubscriptionContentDeleted = "bookmark_catalog_subscription_content_deleted"; +char const * const kSubscriptionBookmarksAllTrialEnabled = + "bookmark_catalog_subscription_city_outdoor_trial_enabled"; // Events. char const * const kDownloaderMapActionFinished = "Downloader_Map_action_finished"; diff --git a/platform/marketing_service.hpp b/platform/marketing_service.hpp index d3e5bc015f..24f6800578 100644 --- a/platform/marketing_service.hpp +++ b/platform/marketing_service.hpp @@ -37,6 +37,7 @@ extern char const * const kSubscriptionBookmarksSightsDisabled; extern char const * const kRemoveAdsSubscriptionEnabled; extern char const * const kRemoveAdsSubscriptionDisabled; extern char const * const kSubscriptionContentDeleted; +extern char const * const kSubscriptionBookmarksAllTrialEnabled; // Events. extern char const * const kDownloaderMapActionFinished;