From 12b2c6339af02d65c2a9f938cac3124c58592ae2 Mon Sep 17 00:00:00 2001 From: Arsentiy Milchakov Date: Tue, 30 Jun 2020 21:59:49 +0300 Subject: [PATCH] [ads] showing bookmark catalog promo during map downloading is fixed --- android/jni/com/mapswithme/maps/Framework.cpp | 9 +++------ iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm | 7 ++----- partners_api/ads/ads_base.cpp | 5 +++-- partners_api/ads/ads_base.hpp | 4 +++- partners_api/ads/ads_engine.cpp | 2 +- partners_api/ads/ads_engine.hpp | 3 ++- partners_api/ads/bookmark_catalog_ads.cpp | 2 +- partners_api/ads/bookmark_catalog_ads.hpp | 3 ++- 8 files changed, 17 insertions(+), 18 deletions(-) diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index 1522f2506a..128779d22b 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -2064,13 +2064,10 @@ Java_com_mapswithme_maps_Framework_nativeGetDownloaderPromoBanner(JNIEnv * env, static jmethodID const downloaderPromoBannerConstructor = jni::GetConstructorID(env, downloaderPromoBannerClass, "(ILjava/lang/String;)V"); - std::vector banners; auto const pos = frm()->GetCurrentPosition(); - if (pos) - { - banners = frm()->GetAdsEngine().GetDownloadOnMapBanners(jni::ToNativeString(env, mwmId), *pos, - languages::GetCurrentNorm()); - } + auto const banners = + frm()->GetAdsEngine().GetDownloadOnMapBanners(jni::ToNativeString(env, mwmId), pos, + languages::GetCurrentNorm()); if (banners.empty()) return nullptr; diff --git a/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm b/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm index 29b0dbd431..10b9428aca 100644 --- a/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm +++ b/iphone/Maps/Classes/Widgets/MWMMapDownloadDialog.mm @@ -41,12 +41,9 @@ BOOL canAutoDownload(storage::CountryId const &countryId) { } ads::Banner getPromoBanner(std::string const &mwmId) { - std::vector banners; auto const pos = GetFramework().GetCurrentPosition(); - if (pos) { - banners = GetFramework().GetAdsEngine().GetDownloadOnMapBanners(mwmId, *pos, - languages::GetCurrentNorm()); - } + auto const banners = + GetFramework().GetAdsEngine().GetDownloadOnMapBanners(mwmId, pos, languages::GetCurrentNorm()); if (banners.empty()) return {}; diff --git a/partners_api/ads/ads_base.cpp b/partners_api/ads/ads_base.cpp index a5ee54e860..d64184d900 100644 --- a/partners_api/ads/ads_base.cpp +++ b/partners_api/ads/ads_base.cpp @@ -1,3 +1,4 @@ + #include "partners_api/ads/ads_base.hpp" #include "partners_api/promo_catalog_types.hpp" @@ -86,10 +87,10 @@ DownloadOnMapContainer::DownloadOnMapContainer(Delegate & delegate) } std::string DownloadOnMapContainer::GetBanner(storage::CountryId const & countryId, - m2::PointD const & userPos, + std::optional const & userPos, std::string const & userLanguage) const { - if (!HasBanner(countryId, userPos, userLanguage)) + if (!userPos || !HasBanner(countryId, *userPos, userLanguage)) return {}; return GetBannerInternal(); diff --git a/partners_api/ads/ads_base.hpp b/partners_api/ads/ads_base.hpp index fb72d8a982..c7b2c6472b 100644 --- a/partners_api/ads/ads_base.hpp +++ b/partners_api/ads/ads_base.hpp @@ -12,6 +12,7 @@ #include #include +#include #include namespace feature @@ -99,7 +100,8 @@ public: explicit DownloadOnMapContainer(Delegate & delegate); virtual ~DownloadOnMapContainer() = default; - virtual std::string GetBanner(storage::CountryId const & countryId, m2::PointD const & userPos, + virtual std::string GetBanner(storage::CountryId const & countryId, + std::optional const & userPos, std::string const & userLanguage) const; protected: diff --git a/partners_api/ads/ads_engine.cpp b/partners_api/ads/ads_engine.cpp index 4a9cec1774..5f8629f650 100644 --- a/partners_api/ads/ads_engine.cpp +++ b/partners_api/ads/ads_engine.cpp @@ -75,7 +75,7 @@ std::vector Engine::GetSearchBanners() const } std::vector Engine::GetDownloadOnMapBanners(storage::CountryId const & downloadMwmId, - m2::PointD const & userPos, + std::optional const & userPos, std::string const & userLanguage) const { auto result = GetBanners(m_downloadOnMapBanners, m_delegate->IsAdsRemoved(), downloadMwmId, diff --git a/partners_api/ads/ads_engine.hpp b/partners_api/ads/ads_engine.hpp index a22de24ee4..a5a07973dd 100644 --- a/partners_api/ads/ads_engine.hpp +++ b/partners_api/ads/ads_engine.hpp @@ -4,6 +4,7 @@ #include "partners_api/ads/banner.hpp" #include +#include #include #include @@ -30,7 +31,7 @@ public: std::string const & userLanguage) const; std::vector GetSearchBanners() const; std::vector GetDownloadOnMapBanners(storage::CountryId const & downloadMwmId, - m2::PointD const & userPos, + std::optional const & userPos, std::string const & userLanguage) const; void DisableAdProvider(Banner::Type const type, Banner::Place const place); diff --git a/partners_api/ads/bookmark_catalog_ads.cpp b/partners_api/ads/bookmark_catalog_ads.cpp index 133bde992d..0e6352eacd 100644 --- a/partners_api/ads/bookmark_catalog_ads.cpp +++ b/partners_api/ads/bookmark_catalog_ads.cpp @@ -8,7 +8,7 @@ BookmarkCatalog::BookmarkCatalog(Delegate & delegate) } std::string BookmarkCatalog::GetBanner(storage::CountryId const & countryId, - m2::PointD const & userPos, + std::optional const & userPos, std::string const & userLanguage) const { return m_delegate.GetLinkForCountryId(countryId); diff --git a/partners_api/ads/bookmark_catalog_ads.hpp b/partners_api/ads/bookmark_catalog_ads.hpp index 9d27e1b375..831a585d0b 100644 --- a/partners_api/ads/bookmark_catalog_ads.hpp +++ b/partners_api/ads/bookmark_catalog_ads.hpp @@ -9,7 +9,8 @@ class BookmarkCatalog : public DownloadOnMapContainer public: explicit BookmarkCatalog(Delegate & delegate); - std::string GetBanner(storage::CountryId const & countryId, m2::PointD const & userPos, + std::string GetBanner(storage::CountryId const & countryId, + std::optional const & userPos, std::string const & userLanguage) const override; }; } // namespace ads