Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indexer/ftypes_matcher.cpp12
-rw-r--r--indexer/ftypes_matcher.hpp7
-rw-r--r--map/framework.cpp18
-rw-r--r--map/user_mark.hpp2
-rw-r--r--search/intermediate_result.cpp2
-rw-r--r--search/result.hpp1
6 files changed, 37 insertions, 5 deletions
diff --git a/indexer/ftypes_matcher.cpp b/indexer/ftypes_matcher.cpp
index 30718a76ae..aedb052684 100644
--- a/indexer/ftypes_matcher.cpp
+++ b/indexer/ftypes_matcher.cpp
@@ -362,6 +362,18 @@ IsBookingChecker const & IsBookingChecker::Instance()
return inst;
}
+IsTinkoffChecker::IsTinkoffChecker()
+{
+ Classificator const & c = classif();
+ m_types.push_back(c.GetTypeByPath({"sponsored", "tinkoff"}));
+}
+
+IsTinkoffChecker const & IsTinkoffChecker::Instance()
+{
+ static IsTinkoffChecker const inst;
+ return inst;
+}
+
IsHotelChecker::IsHotelChecker()
{
Classificator const & c = classif();
diff --git a/indexer/ftypes_matcher.hpp b/indexer/ftypes_matcher.hpp
index 2c42cd1f22..2e4e3c9454 100644
--- a/indexer/ftypes_matcher.hpp
+++ b/indexer/ftypes_matcher.hpp
@@ -152,6 +152,13 @@ public:
static IsBookingChecker const & Instance();
};
+class IsTinkoffChecker : public BaseChecker
+{
+ IsTinkoffChecker();
+public:
+ static IsTinkoffChecker const & Instance();
+};
+
class IsHotelChecker : public BaseChecker
{
public:
diff --git a/map/framework.cpp b/map/framework.cpp
index fbb7455a62..ab204a2687 100644
--- a/map/framework.cpp
+++ b/map/framework.cpp
@@ -146,7 +146,9 @@ size_t constexpr kMaxTrafficCacheSizeBytes = 64 /* Mb */ * 1024 * 1024;
vector<string> kSearchMarks =
{
"search-result",
- "search-booking"
+ "search-booking",
+ "search-tinkoff",
+ "search-adv",
};
// TODO!
@@ -1550,10 +1552,12 @@ bool Framework::Search(search::SearchParams const & params)
CancelQuery(intent.m_handle);
{
- m2::PointD const defaultMarkSize = GetSearchMarkSize(SearchMarkType::DefaultSearchMark);
- m2::PointD const bookingMarkSize = GetSearchMarkSize(SearchMarkType::BookingSearchMark);
- double const eps =
- max(max(defaultMarkSize.x, defaultMarkSize.y), max(bookingMarkSize.x, bookingMarkSize.y));
+ double eps = 0.0;
+ for (size_t i = 0; i < SearchMarkType::SearchMarkTypesCount; i++)
+ {
+ m2::PointD const markSize = GetSearchMarkSize(static_cast<SearchMarkType>(i));
+ eps = max(eps, max(markSize.x, markSize.y));
+ }
intent.m_params.m_minDistanceOnMapBetweenResults = eps;
}
@@ -1747,6 +1751,10 @@ void Framework::FillSearchResultsMarks(search::Results::ConstIter begin,
if (r.m_metadata.m_isSponsoredHotel)
mark->SetCustomSymbol("search-booking");
+ else if (r.m_metadata.m_isSponsoredBank)
+ mark->SetCustomSymbol("search-tinkoff");
+ else if (m_localAdsManager.Contains(r.GetFeatureID()))
+ mark->SetCustomSymbol("search-adv");
}
}
diff --git a/map/user_mark.hpp b/map/user_mark.hpp
index 2af93c802c..d205fa7689 100644
--- a/map/user_mark.hpp
+++ b/map/user_mark.hpp
@@ -54,6 +54,8 @@ enum SearchMarkType
{
DefaultSearchMark = 0,
BookingSearchMark,
+ TinkoffSearchMark,
+ LocalAdsSearchMark,
SearchMarkTypesCount
};
diff --git a/search/intermediate_result.cpp b/search/intermediate_result.cpp
index a8a474e325..f0c37fef80 100644
--- a/search/intermediate_result.cpp
+++ b/search/intermediate_result.cpp
@@ -51,6 +51,8 @@ void ProcessMetadata(FeatureType const & ft, Result::Metadata & meta)
else
meta.m_stars = 0;
+ meta.m_isSponsoredBank = ftypes::IsTinkoffChecker::Instance()(ft);
+
bool const isSponsoredHotel = ftypes::IsBookingChecker::Instance()(ft);
meta.m_isSponsoredHotel = isSponsoredHotel;
meta.m_isHotel = ftypes::IsHotelChecker::Instance()(ft);
diff --git a/search/result.hpp b/search/result.hpp
index b583b5032c..3634108d8b 100644
--- a/search/result.hpp
+++ b/search/result.hpp
@@ -37,6 +37,7 @@ public:
string m_hotelRating;
int m_stars = 0;
bool m_isSponsoredHotel = false;
+ bool m_isSponsoredBank = false;
bool m_isHotel = false;
osm::YesNoUnknown m_isOpenNow = osm::Unknown; // Valid for any result.