From d5914cbce6a5abfa9795e3780f38a8c8e1ccef92 Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Mon, 27 May 2019 10:40:30 +0300 Subject: [PATCH] [partners] Fixed local ads stats for hidden campaigns --- android/src/com/mapswithme/maps/Framework.java | 2 +- android/src/com/mapswithme/maps/ads/LocalAdInfo.java | 8 +++++++- .../mapswithme/maps/widget/placepage/PlacePageView.java | 2 +- iphone/Maps/UI/PlacePage/MWMPlacePageData.mm | 6 +++++- map/framework.cpp | 7 ++++--- map/place_page_info.hpp | 3 ++- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/android/src/com/mapswithme/maps/Framework.java b/android/src/com/mapswithme/maps/Framework.java index 8f1b6ac55f..510bbb4b9d 100644 --- a/android/src/com/mapswithme/maps/Framework.java +++ b/android/src/com/mapswithme/maps/Framework.java @@ -197,7 +197,7 @@ public class Framework @NonNull MapObject mapObject) { LocalAdInfo info = mapObject.getLocalAdInfo(); - if (info == null || !info.isCustomer()) + if (info == null || (!info.isCustomer() && !info.isHidden())) return; Location location = LocationHelper.INSTANCE.getLastKnownLocation(); diff --git a/android/src/com/mapswithme/maps/ads/LocalAdInfo.java b/android/src/com/mapswithme/maps/ads/LocalAdInfo.java index bc81dc9baa..ab64050800 100644 --- a/android/src/com/mapswithme/maps/ads/LocalAdInfo.java +++ b/android/src/com/mapswithme/maps/ads/LocalAdInfo.java @@ -11,13 +11,14 @@ import java.lang.annotation.RetentionPolicy; public class LocalAdInfo implements Parcelable { @Retention(RetentionPolicy.SOURCE) - @IntDef({ STATUS_NOT_AVAILABLE, STATUS_CANDIDATE, STATUS_CUSTOMER}) + @IntDef({ STATUS_NOT_AVAILABLE, STATUS_CANDIDATE, STATUS_CUSTOMER, STATUS_HIDDEN}) public @interface Status {} private static final int STATUS_NOT_AVAILABLE = 0; private static final int STATUS_CANDIDATE = 1; private static final int STATUS_CUSTOMER = 2; + private static final int STATUS_HIDDEN = 3; @Status private final int mStatus; @@ -40,6 +41,11 @@ public class LocalAdInfo implements Parcelable return mStatus == STATUS_CUSTOMER; } + public boolean isHidden() + { + return mStatus == STATUS_HIDDEN; + } + @Nullable public String getUrl() { diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java index eec1eab0bb..3c4773f674 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java +++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java @@ -1439,7 +1439,7 @@ public class PlacePageView extends NestedScrollView { LocalAdInfo localAdInfo = mapObject.getLocalAdInfo(); boolean isLocalAdAvailable = localAdInfo != null && localAdInfo.isAvailable(); - if (isLocalAdAvailable && !TextUtils.isEmpty(localAdInfo.getUrl())) + if (isLocalAdAvailable && !TextUtils.isEmpty(localAdInfo.getUrl()) && !localAdInfo.isHidden()) { mTvLocalAd.setText(localAdInfo.isCustomer() ? R.string.view_campaign_button : R.string.create_campaign_button); diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm index 14b870b536..28a12abf8f 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm @@ -321,6 +321,9 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS"; m_metainfoRows.push_back(MetainfoRows::LocalAdsCustomer); [self logLocalAdsEvent:local_ads::EventType::OpenInfo]; break; + case place_page::LocalAdsStatus::Hidden: + [self logLocalAdsEvent:local_ads::EventType::OpenInfo]; + break; } } @@ -734,7 +737,8 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS"; - (NSString *)localAdsURL { return @(m_info.GetLocalAdsUrl().c_str()); } - (void)logLocalAdsEvent:(local_ads::EventType)type { - if (m_info.GetLocalAdsStatus() != place_page::LocalAdsStatus::Customer) + auto const status = m_info.GetLocalAdsStatus(); + if (status != place_page::LocalAdsStatus::Customer && status != place_page::LocalAdsStatus::Hidden) return; auto const featureID = m_info.GetID(); auto const & mwmInfo = featureID.m_mwmId.GetInfo(); diff --git a/map/framework.cpp b/map/framework.cpp index 6f0480f733..d48b3eaffb 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -985,9 +985,10 @@ void Framework::FillInfoFromFeatureType(FeatureType & ft, place_page::Info & inf if (m_localAdsManager.IsSupportedType(info.GetTypes())) { info.SetLocalAdsUrl(m_localAdsManager.GetCompanyUrl(ft.GetID())); - auto const status = m_localAdsManager.HasVisualization(ft.GetID()) - ? place_page::LocalAdsStatus::Customer - : place_page::LocalAdsStatus::Candidate; + auto status = m_localAdsManager.HasAds(ft.GetID()) ? place_page::LocalAdsStatus::Customer + : place_page::LocalAdsStatus::Candidate; + if (status == place_page::LocalAdsStatus::Customer && !m_localAdsManager.HasVisualization(ft.GetID())) + status = place_page::LocalAdsStatus::Hidden; info.SetLocalAdsStatus(status); } else diff --git a/map/place_page_info.hpp b/map/place_page_info.hpp index b93b4d4097..4998b9f477 100644 --- a/map/place_page_info.hpp +++ b/map/place_page_info.hpp @@ -53,7 +53,8 @@ enum class LocalAdsStatus { NotAvailable, Candidate, - Customer + Customer, + Hidden }; enum class LocalsStatus