From 6edf9443aece3a6af0d741aff144587aa8d4b514 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Mon, 17 Oct 2022 10:47:57 +0300 Subject: [PATCH 1/8] [search] Updated Norwegian street synonyms. Signed-off-by: Viktor Govako --- indexer/search_string_utils.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/indexer/search_string_utils.cpp b/indexer/search_string_utils.cpp index df921463f5..0cdb24be2b 100644 --- a/indexer/search_string_utils.cpp +++ b/indexer/search_string_utils.cpp @@ -292,9 +292,8 @@ public: } private: - /// @todo Print most common street tokens for each country on generator stage (OSM ground truth) - /// and compare with these synonyms. - /// For example, I have doubts about: 'gaten', 'granden', 'vagen', XXXen nordic synonyms. + /// @todo Print most common street tokens for each country on generator stage + /// (OSM ground truth) and compare with these synonyms. StreetsSynonymsHolder() { char const * affics[] = @@ -365,7 +364,8 @@ private: "मार्ग", "marg", // Norwegian - Norsk - "vei", "veien", "vn", "gate", "gaten", "gt", "plass", "plassen", "sving", "svingen", "sv", + // Details here: https://github.com/organicmaps/organicmaps/issues/3616 + "vei", "veien", "veg", "vegen", "vn", "gata", "gate", "gaten", "gt", "plass", "plassen", "sving", "sv", "allé", // Polish - Polski "aleja", "aleje", "aleji", "alejach", "aleją", "plac", "placu", "placem", "ulica", "ulicy", -- 2.45.3 From bca936a9fc1e2a4a03e8cf1c64baa5e40a1e76ee Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Mon, 17 Oct 2022 10:49:01 +0300 Subject: [PATCH 2/8] [drape] Minor fixes. Signed-off-by: Viktor Govako --- drape/overlay_handle.cpp | 25 +++++++++++-------------- drape_frontend/frontend_renderer.cpp | 14 ++++++-------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/drape/overlay_handle.cpp b/drape/overlay_handle.cpp index 493e5e8676..15c4d3fe45 100644 --- a/drape/overlay_handle.cpp +++ b/drape/overlay_handle.cpp @@ -1,14 +1,10 @@ #include "drape/overlay_handle.hpp" -#include "drape/constants.hpp" - #include "base/macros.hpp" #include "base/internal/message.hpp" -#include "base/logging.hpp" #include -#include #include namespace dp @@ -231,22 +227,23 @@ std::string SquareHandle::GetOverlayDebugInfo() } #endif +/// @param[in] minZoomLevel Minimum visible zoom level (less is better) +/// @param[in] rank Rank of the feature (bigger is better) +/// @param[in] depth Manual priority from styles (bigger is better) uint64_t CalculateOverlayPriority(int minZoomLevel, uint8_t rank, float depth) { - // Overlay priority consider the following: - // - Minimum visible zoom level (the less the better); - // - Manual priority from styles (equals to the depth); - // - Rank of the feature (the more the better); - // [1 byte - zoom][4 bytes - priority][1 byte - rank][2 bytes - 0xFFFF]. - uint8_t const minZoom = 0xFF - static_cast(std::max(minZoomLevel, 0)); + // Even if minZoomLevel < 0 (-1 is not visible), we will get more consistent |minZoom| value (less is worse). + ASSERT_GREATER_OR_EQUAL(minZoomLevel, 0, ()); + uint8_t const minZoom = 0xFF - static_cast(minZoomLevel); - float const kMinDepth = -100000.0f; - float const kMaxDepth = 100000.0f; + float constexpr kMinDepth = -100000.0f; + float constexpr kMaxDepth = 100000.0f; float const d = base::Clamp(depth, kMinDepth, kMaxDepth) - kMinDepth; - auto const priority = static_cast(d); + // Pack into uint64_t priority value (bigger is better). + // [1 byte - zoom][4 bytes - priority][1 byte - rank][2 bytes - 0xFFFF]. return (static_cast(minZoom) << 56) | - (static_cast(priority) << 24) | + (static_cast(d) << 24) | (static_cast(rank) << 16) | static_cast(0xFFFF); } diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 6c6e923d04..9ff3181a23 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -1882,14 +1882,12 @@ void FrontendRenderer::BuildOverlayTree(ScreenBase const & modelView) void FrontendRenderer::PrepareBucket(dp::RenderState const & state, drape_ptr & bucket) { CHECK(m_context != nullptr, ()); - auto program = m_gpuProgramManager->GetProgram(state.GetProgram()); - auto program3d = m_gpuProgramManager->GetProgram(state.GetProgram3d()); - bool const isPerspective = m_userEventStream.GetCurrentScreen().isPerspective(); - if (isPerspective) - program3d->Bind(); - else - program->Bind(); - bucket->GetBuffer()->Build(m_context, isPerspective ? program3d : program); + + auto program = m_gpuProgramManager->GetProgram(m_userEventStream.GetCurrentScreen().isPerspective() ? + state.GetProgram3d() : state.GetProgram()); + + program->Bind(); + bucket->GetBuffer()->Build(m_context, program); } void FrontendRenderer::RenderSingleGroup(ref_ptr context, -- 2.45.3 From 9dc65c7743bc60e2943e4d530ed31c0c7a31d8e2 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Mon, 17 Oct 2022 10:51:06 +0300 Subject: [PATCH 3/8] [feature] Removed _always_ types (wheelchair, internet, etc) in IsDrawable check. Signed-off-by: Viktor Govako --- .../generator_tests_support/test_feature.hpp | 2 +- indexer/feature_visibility.cpp | 12 ++++++---- indexer/feature_visibility.hpp | 1 + .../processor_test.cpp | 8 +++---- .../search_integration_tests/smoke_test.cpp | 23 +++++++++++-------- 5 files changed, 27 insertions(+), 19 deletions(-) diff --git a/generator/generator_tests_support/test_feature.hpp b/generator/generator_tests_support/test_feature.hpp index dde4110c55..654878d446 100644 --- a/generator/generator_tests_support/test_feature.hpp +++ b/generator/generator_tests_support/test_feature.hpp @@ -171,7 +171,7 @@ public: void SetHouseNumber(std::string const & houseNumber) { m_houseNumber = houseNumber; } void SetStreetName(std::string_view name) { m_streetName = name; } - void SetType(uint32_t type) { m_types.assign(1 /* count */, type); } + void SetTypes(std::initializer_list const & types) { m_types.assign(types); } void SetTypes(std::initializer_list const & types); protected: diff --git a/indexer/feature_visibility.cpp b/indexer/feature_visibility.cpp index 6dc0fdceeb..53a65d4f04 100644 --- a/indexer/feature_visibility.cpp +++ b/indexer/feature_visibility.cpp @@ -114,9 +114,6 @@ namespace return false; } - /// Warning: Geometry of features with always existing types will be indexed in mwm on all - /// zoom levels. If you add an always existing type to drawing types, the displacement of icons - /// may work not correctly. bool TypeAlwaysExists(uint32_t type, GeomType g = GeomType::Undefined) { auto const & cl = classif(); @@ -189,6 +186,11 @@ namespace /// @} } // namespace +bool IsCategoryNondrawableType(uint32_t type) +{ + return TypeAlwaysExists(type); +} + bool IsUsefulType(uint32_t type) { return IsUsefulNondrawableType(type) || classif().GetObject(type)->IsDrawableAny(); @@ -241,7 +243,9 @@ bool IsDrawableForIndexClassifOnly(TypesHolder const & types, int level) Classificator const & c = classif(); for (uint32_t t : types) { - if (TypeAlwaysExists(t) || c.GetObject(t)->IsDrawable(level)) + // By VNG: TypeAlwaysExists check was removed. These kind of types (internet, recycling, fee, access, etc) + // should NOT influence on draw priority and index visibility. Some fancy logic may be broken .. + if (c.GetObject(t)->IsDrawable(level)) return true; } diff --git a/indexer/feature_visibility.hpp b/indexer/feature_visibility.hpp index 941e499f67..cab998262b 100644 --- a/indexer/feature_visibility.hpp +++ b/indexer/feature_visibility.hpp @@ -18,6 +18,7 @@ namespace feature { class TypesHolder; + bool IsCategoryNondrawableType(uint32_t type); bool IsUsefulType(uint32_t type); bool IsDrawableForIndex(FeatureType & ft, int level); bool IsDrawableForIndex(TypesHolder const & types, m2::RectD limitRect, int level); diff --git a/search/search_integration_tests/processor_test.cpp b/search/search_integration_tests/processor_test.cpp index 11a09f456d..c00b118daa 100644 --- a/search/search_integration_tests/processor_test.cpp +++ b/search/search_integration_tests/processor_test.cpp @@ -3169,14 +3169,12 @@ UNIT_CLASS_TEST(ProcessorTest, PoiStreetCity_FancyMatch) UNIT_CLASS_TEST(ProcessorTest, ComplexPoi_Rank) { - auto const & cl = classif(); - TestBuilding landuse({-1, -1, 1, 1}, "Telekom", "5", "xxx", "de"); - landuse.AddType(cl.GetTypeByPath({"landuse", "commercial"})); + landuse.AddType(classif().GetTypeByPath({"landuse", "commercial"})); TestPOI poiInMall({0, 0}, "yyy", "de"); - poiInMall.SetType(cl.GetTypeByPath({"shop", "clothes"})); + poiInMall.SetTypes({{"shop", "clothes"}}); TestPOI telekom({2, 2}, "Telekom shop", "de"); - telekom.SetType(cl.GetTypeByPath({"shop", "mobile_phone"})); + telekom.SetTypes({{"shop", "mobile_phone"}}); auto countryId = BuildCountry("Wonderland", [&](TestMwmBuilder & builder) { diff --git a/search/search_integration_tests/smoke_test.cpp b/search/search_integration_tests/smoke_test.cpp index 1ab7a0a78f..34a9fdccdb 100644 --- a/search/search_integration_tests/smoke_test.cpp +++ b/search/search_integration_tests/smoke_test.cpp @@ -12,6 +12,7 @@ #include "indexer/classificator.hpp" #include "indexer/feature_meta.hpp" +#include "indexer/feature_visibility.hpp" #include "geometry/point2d.hpp" #include "geometry/rect2d.hpp" @@ -156,7 +157,7 @@ UNIT_CLASS_TEST(SmokeTest, TypesSkipperTest) auto const & cl = classif(); for (auto const & path : arr) { - feature::TypesHolder types; + TypesHolder types; types.Add(cl.GetTypeByPath(path)); TEST(!skipper.SkipAlways(types), (path)); @@ -226,28 +227,32 @@ UNIT_CLASS_TEST(SmokeTest, CategoriesTest) auto const & holder = GetDefaultCategories(); + uint32_t const cafeType = cl.GetTypeByPath({"amenity", "cafe"}); + auto testCategory = [&](uint32_t type, CategoriesHolder::Category const &) { - if (invisibleTypes.find(type) != invisibleTypes.end()) + if (invisibleTypes.count(type) > 0) return; bool categoryIsSearchable = true; - if (notSupportedTypes.find(type) != notSupportedTypes.end()) + if (notSupportedTypes.count(type) > 0) categoryIsSearchable = false; string const countryName = "Wonderland"; TestPOI poi(m2::PointD(1.0, 1.0), "poi", "en"); - poi.SetType(type); + if (IsCategoryNondrawableType(type)) + poi.SetTypes({type, cafeType}); + else + poi.SetTypes({type}); auto id = BuildMwm(countryName, DataHeader::MapType::Country, [&](TestMwmBuilder & builder) { builder.AddSafe(poi); }); - { - Rules rules = {ExactMatch(id, poi)}; - auto const query = holder.GetReadableFeatureType(type, CategoriesHolder::kEnglishCode); - TEST(CategoryMatch(query, categoryIsSearchable ? rules : Rules{}), (query)); - } + Rules rules = {ExactMatch(id, poi)}; + auto const query = holder.GetReadableFeatureType(type, CategoriesHolder::kEnglishCode); + TEST(CategoryMatch(query, categoryIsSearchable ? rules : Rules{}), (query)); + DeregisterMap(countryName); }; -- 2.45.3 From acf87ac1f81318594bd990f21efaba0cf88031c9 Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Mon, 17 Oct 2022 10:52:34 +0300 Subject: [PATCH 4/8] [styles] Draw international airport icon from on z7-9. Signed-off-by: Viktor Govako --- data/styles/clear/include/Basemap.mapcss | 16 ---------- data/styles/clear/include/Icons.mapcss | 23 ++++----------- data/styles/vehicle/include/Basemap.mapcss | 34 +++++----------------- data/styles/vehicle/include/Icons.mapcss | 30 ++++--------------- 4 files changed, 19 insertions(+), 84 deletions(-) diff --git a/data/styles/clear/include/Basemap.mapcss b/data/styles/clear/include/Basemap.mapcss index 571b8eb011..4e1dcec84c 100644 --- a/data/styles/clear/include/Basemap.mapcss +++ b/data/styles/clear/include/Basemap.mapcss @@ -41,9 +41,7 @@ area[natural=glacier], area[natural=beach], area[natural=desert], area[leisure=beach_resort], -area[aeroway=airport][aerodrome=international], area[aeroway=aerodrome][aerodrome=international], -area[aeroway=airport], area[aeroway=aerodrome], area[landuse=education], {z-index: 1;} @@ -460,9 +458,7 @@ line[waterway][tunnel] /* 7.LANDUSE */ -area|z10-[aeroway=airport][aerodrome=international], area|z10-[aeroway=aerodrome][aerodrome=international], -area|z10-[aeroway=airport], area|z10-[aeroway=aerodrome], area|z14-[amenity=hospital], area|z14-[amenity=doctors], @@ -564,34 +560,22 @@ area|z16-[area:highway=living_street], /* 7.6 Airports */ -area|z10[aeroway=airport][aerodrome=international], area|z10[aeroway=aerodrome][aerodrome=international], area|z10[aeroway=aerodrome], -area|z10[aeroway=airport] {fill-color: @aerodrome0;} -area|z11[aeroway=airport][aerodrome=international], area|z11[aeroway=aerodrome][aerodrome=international], area|z11[aeroway=aerodrome], -area|z11[aeroway=airport], {fill-color: @aerodrome1;} -area|z12-[aeroway=airport][aerodrome=international], area|z12-[aeroway=aerodrome][aerodrome=international], -area|z12-[aeroway=airport], area|z12-[aeroway=aerodrome] {fill-color: @aerodrome2;} -area|z13[aeroway=airport][aerodrome=international], area|z13[aeroway=aerodrome][aerodrome=international], -area|z13[aeroway=airport], area|z13[aeroway=aerodrome] {fill-color: @aerodrome3;} -area|z14[aeroway=airport][aerodrome=international], area|z14[aeroway=aerodrome][aerodrome=international], -area|z14[aeroway=airport], area|z14[aeroway=aerodrome] {fill-color: @aerodrome4;} -area|z15-19[aeroway=airport][aerodrome=international], area|z15-19[aeroway=aerodrome][aerodrome=international], -area|z15-19[aeroway=airport], area|z15-19[aeroway=aerodrome] {fill-color: @aerodrome5;} diff --git a/data/styles/clear/include/Icons.mapcss b/data/styles/clear/include/Icons.mapcss index db9a460adc..6c34f3599c 100644 --- a/data/styles/clear/include/Icons.mapcss +++ b/data/styles/clear/include/Icons.mapcss @@ -730,9 +730,7 @@ node|z14-[amenity=bus_station]::int_name, area|z14-[amenity=bus_station]::int_name {text: int_name;text-color: @label_dark;text-halo-radius: 1;text-halo-opacity: 0.9;text-halo-color: @label_halo_light;text-position: center;text-optional: true;} -area|z10-[aeroway=airport], area|z10-[aeroway=aerodrome], -node|z10-[aeroway=airport], node|z10-[aeroway=aerodrome], node|z15-[aerialway=station], node|z15-[aerialway=cable_car], @@ -747,9 +745,7 @@ node|z15-[aerialway=platter], node|z15-[aerialway=rope_tow], node|z16-[amenity=ferry_terminal] {text: name;text-color: @label_dark;text-halo-radius: 1;text-halo-opacity: 0.7;text-halo-color: @label_halo_light;text-position: center;text-optional: true;} -area|z12-[aeroway=airport]::int_name, area|z12-[aeroway=aerodrome]::int_name, -node|z12-[aeroway=airport]::int_name, node|z12-[aeroway=aerodrome]::int_name, {text: int_name;text-color: @label_dark;text-halo-radius: 1;text-halo-opacity: 0.7;text-halo-color: @label_halo_light;text-position: center;text-optional: true;} @@ -901,32 +897,25 @@ node|z17-[amenity=ferry_terminal] /* 3.6 Airport */ -area|z10[aeroway=airport][aerodrome=international], +/* Manually define priority to avoid city names displacement */ +area|z7-9[aeroway=aerodrome][aerodrome=international], +node|z7-9[aeroway=aerodrome][aerodrome=international], +{ icon-image: airport-s.svg; -x-me-icon-priority: 10000 } + area|z10[aeroway=aerodrome][aerodrome=international], -node|z10[aeroway=airport][aerodrome=international], -node|z10[aeroway=aerodrome][aerodrome=international] +node|z10[aeroway=aerodrome][aerodrome=international], {icon-image: airport-s.svg;text-offset: 1;font-size: 10;fill-opacity: 1;text-optional: true;} -area|z11-13[aeroway=airport][aerodrome=international], area|z11-13[aeroway=aerodrome][aerodrome=international], -node|z11-13[aeroway=airport][aerodrome=international], node|z11-13[aeroway=aerodrome][aerodrome=international], -area|z12-13[aeroway=airport][aerodrome=international], -node|z12-13[aeroway=airport][aerodrome=international], area|z12-13[aeroway=aerodrome][aerodrome=international], node|z12-13[aeroway=aerodrome][aerodrome=international] {icon-image: airport-m.svg;text-offset: 1;font-size: 11;-x-me-icon-priority: 3100;text-optional: true;} -area|z12-13[aeroway=airport]::int_name, -node|z12-13[aeroway=airport]::int_name, area|z12-13[aeroway=aerodrome]::int_name, node|z12-13[aeroway=aerodrome]::int_name, {font-size: 10;text-optional: true;} -area|z14-[aeroway=airport], -node|z14-[aeroway=airport], area|z14-[aeroway=aerodrome], node|z14-[aeroway=aerodrome] {icon-image: airport-m.svg;text-offset: 1;font-size: 12;text-optional: true;} -area|z14-[aeroway=airport]::int_name, -node|z14-[aeroway=airport]::int_name, area|z14-[aeroway=aerodrome]::int_name, node|z14-[aeroway=aerodrome]::int_name, {font-size: 11;text-optional: true;} diff --git a/data/styles/vehicle/include/Basemap.mapcss b/data/styles/vehicle/include/Basemap.mapcss index f2b23f674d..1bdf5daca2 100644 --- a/data/styles/vehicle/include/Basemap.mapcss +++ b/data/styles/vehicle/include/Basemap.mapcss @@ -40,9 +40,7 @@ area[natural=beach], area[natural=desert], area[leisure=beach_resort], area[amenity=university], -area[aeroway=airport][aerodrome=international], area[aeroway=aerodrome][aerodrome=international], -area[aeroway=airport], area[aeroway=aerodrome] {z-index: 1;} @@ -233,6 +231,7 @@ line|z10-[boundary=administrative][admin_level=4] area|z10-[landuse=forest], area|z10-[leisure=park], +area|z10-[leisure=nature_reserve], area|z12-[leisure=garden], area|z14-[landuse=grass], area|z14-[natural=grassland], @@ -248,12 +247,9 @@ area|z14-[landuse=village_green], area|z14-[landuse=field], {fill-position: background; fill-opacity: 1;} -area|z10-[leisure=nature_reserve] -{fill-position: background; fill-opacity: 1;} - area|z10[landuse=forest], area|z10[leisure=nature_reserve], -{fill-color: @green1;fill-opacity: 1;} +{fill-color: @green1;} area|z14-[landuse=grass], area|z14-[natural=grassland], @@ -268,37 +264,37 @@ area|z14-[landuse=meadow], area|z14-[landuse=recreation_ground], area|z14-[landuse=village_green], area|z14-[landuse=field], -{fill-color: @green1;fill-opacity: 1;} +{fill-color: @green1;} area|z11-12[landuse=forest], area|z11-12[leisure=nature_reserve], area|z10-12[leisure=park], area|z12[leisure=garden], -{fill-color: @green2;fill-opacity: 1;} +{fill-color: @green2;} area|z13[landuse=forest], area|z13[leisure=nature_reserve], area|z13[leisure=park], area|z13[leisure=garden] -{fill-color: @green3;fill-opacity: 1;} +{fill-color: @green3;} area|z14[landuse=forest], area|z14[leisure=nature_reserve], area|z14[leisure=park], area|z14[leisure=garden] -{fill-color: @green4;fill-opacity: 1;} +{fill-color: @green4;} area|z15[landuse=forest], area|z15[leisure=nature_reserve], area|z15[leisure=park], area|z15[leisure=garden] -{fill-color: @green5;fill-opacity: 1;} +{fill-color: @green5;} area|z16-[landuse=forest], area|z16-[leisure=nature_reserve], area|z16-[leisure=park], area|z16-[leisure=garden] -{fill-color: @forest;fill-opacity: 1;} +{fill-color: @forest;} area|z12-[natural=bare_rock], {fill-color: @barerock;} @@ -408,9 +404,7 @@ line[waterway][tunnel] /* 7.LANDUSE */ -area|z10-[aeroway=airport][aerodrome=international], area|z10-[aeroway=aerodrome][aerodrome=international], -area|z10-[aeroway=airport], area|z10-[aeroway=aerodrome], area|z14-[amenity=hospital], area|z14-[amenity=doctors], @@ -479,34 +473,22 @@ area|z16-[landuse=cemetery] /* 7.6 Airports */ -area|z10[aeroway=airport][aerodrome=international], area|z10[aeroway=aerodrome][aerodrome=international], area|z10[aeroway=aerodrome], -area|z10[aeroway=airport] {fill-color: @aerodrome0;fill-opacity: 1;} -area|z11[aeroway=airport][aerodrome=international], area|z11[aeroway=aerodrome][aerodrome=international], area|z11[aeroway=aerodrome], -area|z11[aeroway=airport], {fill-color: @aerodrome1;fill-opacity: 1;} -area|z12-[aeroway=airport][aerodrome=international], area|z12-[aeroway=aerodrome][aerodrome=international], -area|z12-[aeroway=airport], area|z12-[aeroway=aerodrome] {fill-color: @aerodrome2;fill-opacity: 1;} -area|z13[aeroway=airport][aerodrome=international], area|z13[aeroway=aerodrome][aerodrome=international], -area|z13[aeroway=airport], area|z13[aeroway=aerodrome] {fill-color: @aerodrome3;fill-opacity: 1;} -area|z14[aeroway=airport][aerodrome=international], area|z14[aeroway=aerodrome][aerodrome=international], -area|z14[aeroway=airport], area|z14[aeroway=aerodrome] {fill-color: @aerodrome4;fill-opacity: 1;} -area|z15-19[aeroway=airport][aerodrome=international], area|z15-19[aeroway=aerodrome][aerodrome=international], -area|z15-19[aeroway=airport], area|z15-19[aeroway=aerodrome] {fill-color: @aerodrome5; fill-opacity: 1;} diff --git a/data/styles/vehicle/include/Icons.mapcss b/data/styles/vehicle/include/Icons.mapcss index db911aacc0..58be432f69 100644 --- a/data/styles/vehicle/include/Icons.mapcss +++ b/data/styles/vehicle/include/Icons.mapcss @@ -164,9 +164,7 @@ area[amenity=bus_station], node[tourism=viewpoint] {z-index: 3050;} -area[aeroway=airport], area[aeroway=aerodrome], -node[aeroway=airport], node[aeroway=aerodrome], node[amenity=parking], area[amenity=parking], @@ -263,14 +261,10 @@ node|z17-[railway=tram_stop]::int_name, area|z17-[railway=tram_stop]::int_name {text: int_name;text-color: @label_dark;text-halo-radius: 1;text-halo-opacity: 1;text-halo-color: @label_halo_light;} -area|z10-[aeroway=airport], area|z10-[aeroway=aerodrome], -node|z10-[aeroway=airport], node|z10-[aeroway=aerodrome], {text: name;text-color: @label_dark;text-halo-radius: 1;text-halo-opacity: 0.7;text-halo-color: @label_halo_light;text-position: center;} -area|z12-[aeroway=airport]::int_name, area|z12-[aeroway=aerodrome]::int_name, -node|z12-[aeroway=airport]::int_name, node|z12-[aeroway=aerodrome]::int_name, {text: int_name;text-color: @label_dark;text-halo-radius: 1;text-halo-opacity: 0.7;text-halo-color: @label_halo_light;text-position: center;} @@ -333,49 +327,35 @@ area|z18-[railway=tram_stop] /* 3.6 Airport */ -area|z10[aeroway=airport][aerodrome=international], +/* Manually define priority to avoid city names displacement */ +area|z7-9[aeroway=aerodrome][aerodrome=international], +node|z7-9[aeroway=aerodrome][aerodrome=international], +{ icon-image: airport-s.svg; -x-me-icon-priority: 10000 } + area|z10[aeroway=aerodrome][aerodrome=international], -node|z10[aeroway=airport][aerodrome=international], node|z10[aeroway=aerodrome][aerodrome=international], {icon-image: airport-s.svg;text-offset: 1;font-size: 10;fill-opacity: 1;} -area|z11-14[aeroway=airport][aerodrome=international], area|z11-14[aeroway=aerodrome][aerodrome=international], -node|z11-14[aeroway=airport][aerodrome=international], node|z11-14[aeroway=aerodrome][aerodrome=international], -area|z12-14[aeroway=airport], -node|z12-14[aeroway=airport], area|z12-14[aeroway=aerodrome], node|z12-14[aeroway=aerodrome], {icon-image: airport-m.svg;text-offset: 1;font-size: 11;-x-me-icon-priority: 3100;} -area|z12-14[aeroway=airport]::int_name, -node|z12-14[aeroway=airport]::int_name, area|z12-14[aeroway=aerodrome]::int_name, node|z12-14[aeroway=aerodrome]::int_name, {font-size: 10;} -area|z15-16[aeroway=airport], -node|z15-16[aeroway=airport], area|z15-16[aeroway=aerodrome], node|z15-16[aeroway=aerodrome], {icon-image: airport-m.svg;text-offset: 1;font-size: 12;} -area|z15-16[aeroway=airport]::int_name, -node|z15-16[aeroway=airport]::int_name, area|z15-16[aeroway=aerodrome]::int_name, node|z15-16[aeroway=aerodrome]::int_name, {font-size: 11;} -area|z17-[aeroway=airport], -node|z17-[aeroway=airport], area|z17-[aeroway=aerodrome], node|z17-[aeroway=aerodrome], {icon-image: airport-m.svg;text-offset: 1;font-size: 13;} -area|z17-[aeroway=airport]::int_name, -node|z17-[aeroway=airport]::int_name, area|z17-[aeroway=aerodrome]::int_name, node|z17-[aeroway=aerodrome]::int_name, {font-size: 12;} - - - area|z17-[aeroway=heliport], node|z17-[aeroway=heliport], {icon-image: helipad-m.svg;text-offset: 1;font-size: 11;text: name;text-color: @poi_label;} -- 2.45.3 From f10ecda47c0f2cef96810ae79e547044f4bc51af Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Tue, 18 Oct 2022 08:45:17 +0300 Subject: [PATCH 5/8] [styles] Fixed historic priority. Signed-off-by: Viktor Govako --- data/styles/clear/include/Icons.mapcss | 12 ++++-------- data/styles/vehicle/include/Icons.mapcss | 16 ++-------------- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/data/styles/clear/include/Icons.mapcss b/data/styles/clear/include/Icons.mapcss index 6c34f3599c..156f749a44 100644 --- a/data/styles/clear/include/Icons.mapcss +++ b/data/styles/clear/include/Icons.mapcss @@ -86,14 +86,8 @@ area[natural=saddle], node[mountain_pass], area[mountain_pass], node[tourism=information], -node[historic=wayside_shrine], -area[historic=wayside_shrine], -node[historic=tomb], -area[historic=tomb], -node[historic=wayside_cross], -area[historic=wayside_cross], -node[historic=boundary_stone], -area[historic=boundary_stone], +node[historic], +area[historic], node[amenity=post_box], area[amenity=post_box], node[amenity=telephone], @@ -130,6 +124,8 @@ area[amenity=marketplace], node[amenity=veterinary], area[amenity=veterinary], node[leisure=playground], +node[historic=ruins], +area[historic=ruins], node[historic=ship], area[historic=ship], node[tourism=artwork][artwork_type=sculpture], diff --git a/data/styles/vehicle/include/Icons.mapcss b/data/styles/vehicle/include/Icons.mapcss index 58be432f69..1dd70a1337 100644 --- a/data/styles/vehicle/include/Icons.mapcss +++ b/data/styles/vehicle/include/Icons.mapcss @@ -80,20 +80,8 @@ node[shop=car_repair][service=tyres], area[shop=car_repair][service=tyres], {z-index: 2832;} -node[historic=boundary_stone], -area[historic=boundary_stone], -node[historic=wayside_cross], -area[historic=wayside_cross], -node[historic=ship], -area[historic=ship], -node[historic=tomb], -area[historic=tomb], -node[historic=ruins], -area[historic=ruins], -node[historic=wayside_shrine], -area[historic=wayside_shrine], -node[historic=archaeological_site], -area[historic=archaeological_site], +node[historic], +area[historic], node[amenity=arts_centre], area[amenity=arts_centre] {z-index: 2868;} -- 2.45.3 From 2e3e364bfb078bc9e8022bf8be8f1a16030d61cb Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Tue, 18 Oct 2022 17:45:22 +0300 Subject: [PATCH 6/8] [styles] Regenerated. Signed-off-by: Viktor Govako --- data/drules_proto.bin | Bin 321372 -> 321443 bytes data/drules_proto.txt | 77 ++++++++++++++++++---------- data/drules_proto_clear.bin | Bin 322012 -> 322083 bytes data/drules_proto_clear.txt | 77 ++++++++++++++++++---------- data/drules_proto_dark.bin | Bin 320352 -> 320423 bytes data/drules_proto_dark.txt | 77 ++++++++++++++++++---------- data/drules_proto_vehicle_clear.bin | Bin 239634 -> 239694 bytes data/drules_proto_vehicle_clear.txt | 31 +++++++++-- data/drules_proto_vehicle_dark.bin | Bin 238472 -> 238532 bytes data/drules_proto_vehicle_dark.txt | 31 +++++++++-- data/visibility.txt | 2 +- 11 files changed, 200 insertions(+), 95 deletions(-) diff --git a/data/drules_proto.bin b/data/drules_proto.bin index 111bc2d7c2936b26022a5bf5ed4c3b24a45c8b2c..e89ca4b41f58279f34560c759b46c9399f08014a 100644 GIT binary patch delta 475 zcmca}PI&Qo;SHOWnKrUd-m0wRD#XFA#K*;%m|0YiUsR%7EHS}PNQi?2ix?+{m<dua`wH3IM_fn1%oV delta 503 zcmZ2{Uii*A;SHOWnZB}3-m0v`X~V%KCBX6N|E0-^$`Z{cD%(v|7)=xE*D!GjWn>nY zn3NGRK}+#mZS=)aqub$aB&u;<|bz573&sDG}J2aXbEs}b8rb9>6pl*!DzuK zF{2cyj*m!n{K)EZLFP#S&8x>WPyjD+e>>{^r8T`)QcGa diff --git a/data/drules_proto.txt b/data/drules_proto.txt index e8c242d06f..2e724da3d2 100644 --- a/data/drules_proto.txt +++ b/data/drules_proto.txt @@ -2684,6 +2684,27 @@ cont { } cont { name: "aeroway-aerodrome-international" + element { + scale: 7 + symbol { + name: "airport-s" + priority: 10000 + } + } + element { + scale: 8 + symbol { + name: "airport-s" + priority: 10000 + } + } + element { + scale: 9 + symbol { + name: "airport-s" + priority: 10000 + } + } element { scale: 10 area { @@ -32922,7 +32943,7 @@ cont { scale: 13 symbol { name: "remains-s" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32932,14 +32953,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 14 symbol { name: "remains-s" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32949,14 +32970,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 15 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 24 } caption { @@ -32966,14 +32987,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 16 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32983,14 +33004,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 17 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -33000,14 +33021,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 18 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -33017,14 +33038,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 19 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -33034,7 +33055,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } } @@ -33045,7 +33066,7 @@ cont { lines { width: 2.0 color: 12763315 - priority: 1466 + priority: 1600 cap: BUTTCAP } } @@ -33054,7 +33075,7 @@ cont { lines { width: 2.8 color: 12763315 - priority: 1466 + priority: 1600 cap: BUTTCAP } } @@ -33069,7 +33090,7 @@ cont { dd: 1.5 dd: 3.0 } - priority: 1466 + priority: 1600 } } element { @@ -33083,7 +33104,7 @@ cont { dd: 1.9 dd: 4.0 } - priority: 1466 + priority: 1600 } } element { @@ -33097,7 +33118,7 @@ cont { dd: 2.5 dd: 6.0 } - priority: 1466 + priority: 1600 } } element { @@ -33111,7 +33132,7 @@ cont { dd: 3.0 dd: 8.0 } - priority: 1466 + priority: 1600 } } } @@ -33685,7 +33706,7 @@ cont { scale: 17 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33694,7 +33715,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "name" } @@ -33702,7 +33723,7 @@ cont { scale: 18 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33711,7 +33732,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "name" } @@ -33719,7 +33740,7 @@ cont { scale: 19 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33728,7 +33749,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "name" } @@ -33736,7 +33757,7 @@ cont { scale: 19 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33745,7 +33766,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "!name" } diff --git a/data/drules_proto_clear.bin b/data/drules_proto_clear.bin index 0e19cf1bad706634ea2f00cf82d7b67a8945f939..ab45aa22545a1f0250601e30ebbb55ba7a984914 100644 GIT binary patch delta 587 zcmca}S$Odk;SHOWnKrUd-m0wRD#XFA#K*;%m|0YiUsR%7EHS}PNQi?2ix?+{m<#FA7Ybq-!7K`zds z)ZE0(ykekDHyS5@G!~xTe~*Qe7ppL<06(&hT!|ag4@R+wfON153ZO~B4PzA)#4RO+ zTS^$46w`;w=|377b)*mQSTG8SbMOlZbEbg-n}fjS#%?x+13c61n;5N`4)9E#-)sq@ zZb2x~77%Z{ZZqQ}*7~E2Tzv2_DJlg9fRHwapb|eKJaQ!-HZp1naB*{R2^{H|$fUt& x!6@;w(u*Z8F*g;cScnwG!f1*e@ffYcfvy^x;`Y;>j6lo;#LU}Icd`g3006>OxwQZQ delta 480 zcmZ2{MflET;SHOWnZB}3-m0v`X~V%KCBX6N|E0-^$`Z{cD%(v|7%#=tuVLa6%E&A( z$uG)G)=kbVsftA+g3OZunm75RCvQF2903e@?Dh!~sZNMUb;3%5NFD_{jA!!0F5&4m zO^n)`o13{9w-+`uK4euq$jHS952>P3V6X^jaR@5$!9!`Xp}(m3j8ZR_yu{p8pqvmM fIbob~+8pR|OfyQ`g}NAlmKwdEf?S+Mskw=ndBs4JZ!}K+Xe>OP z{{{;uFIHhz0e)m1xe_;~H%73CfON153ZO~B4PzA)#4RO+TS^$46w`;w={hZpI!p(6 zCi6FogD8z=Yalg!LkpuNh`XQ}Ox*@k+Y?(EAF(PPW#r<^$Sf|&FUm~TEh+_iS4f*f wP>CPz`^kCf5~5x#d5O8HKp7#NGQv1ybU4su+W&Vm0x=U1GjIRj&5{@n0Az`o8~^|S delta 494 zcmZ2}T=>B;;SHOWnZB}3-m0v`X~V%KCBSj?)`Q83$`Z{cD%(v|7}?_M*D!GjWn>nY zn3NGRK}+#mZS=)aqub$aB&u;<|bz573&sDG}J2aXbEs}b8rbtA+g3OZunm2j7CvQF2903e@?Dh!~sZNMUb;3%@NFD_{42#9n^II5o zHhVU6F>YVl%J`5~@gO4?A3WTON`ZkSq{Shq#0L+v$@2c9;xkIUSn?8cQ-N|qc;tj} c%4u_;%Q4L;ZFlQo1Y#y2X5Q}B!;%;d03&sYT>t<8 diff --git a/data/drules_proto_dark.txt b/data/drules_proto_dark.txt index 883f707209..ac2925921c 100644 --- a/data/drules_proto_dark.txt +++ b/data/drules_proto_dark.txt @@ -2684,6 +2684,27 @@ cont { } cont { name: "aeroway-aerodrome-international" + element { + scale: 7 + symbol { + name: "airport-s" + priority: 10000 + } + } + element { + scale: 8 + symbol { + name: "airport-s" + priority: 10000 + } + } + element { + scale: 9 + symbol { + name: "airport-s" + priority: 10000 + } + } element { scale: 10 area { @@ -32711,7 +32732,7 @@ cont { scale: 13 symbol { name: "remains-s" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32721,14 +32742,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 14 symbol { name: "remains-s" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32738,14 +32759,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 15 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 24 } caption { @@ -32755,14 +32776,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 16 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32772,14 +32793,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 17 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32789,14 +32810,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 18 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32806,14 +32827,14 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } element { scale: 19 symbol { name: "remains-m" - priority: 16000 + priority: 16600 min_distance: 12 } caption { @@ -32823,7 +32844,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15600 } } } @@ -32834,7 +32855,7 @@ cont { lines { width: 2.0 color: 3881787 - priority: 1466 + priority: 1600 cap: BUTTCAP } } @@ -32843,7 +32864,7 @@ cont { lines { width: 2.8 color: 3881787 - priority: 1466 + priority: 1600 cap: BUTTCAP } } @@ -32858,7 +32879,7 @@ cont { dd: 1.5 dd: 3.0 } - priority: 1466 + priority: 1600 } } element { @@ -32872,7 +32893,7 @@ cont { dd: 1.9 dd: 4.0 } - priority: 1466 + priority: 1600 } } element { @@ -32886,7 +32907,7 @@ cont { dd: 2.5 dd: 6.0 } - priority: 1466 + priority: 1600 } } element { @@ -32900,7 +32921,7 @@ cont { dd: 3.0 dd: 8.0 } - priority: 1466 + priority: 1600 } } } @@ -33474,7 +33495,7 @@ cont { scale: 17 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33483,7 +33504,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "name" } @@ -33491,7 +33512,7 @@ cont { scale: 18 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33500,7 +33521,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "name" } @@ -33508,7 +33529,7 @@ cont { scale: 19 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33517,7 +33538,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "name" } @@ -33525,7 +33546,7 @@ cont { scale: 19 symbol { name: "remains-m" - priority: 16000 + priority: 16609 } caption { primary { @@ -33534,7 +33555,7 @@ cont { offset_y: 1 is_optional: true } - priority: 15000 + priority: 15609 } apply_if: "!name" } diff --git a/data/drules_proto_vehicle_clear.bin b/data/drules_proto_vehicle_clear.bin index a6ffdbc1eca7ebac9a4da98c30812621dee4dd59..929f757c6fc61cbe8cb967494dae59d33f77ba80 100644 GIT binary patch delta 125 zcmbPqf$!V}z6~18Oq1CsYcVTX3vsY3@o{k`W)>CX7nSH1OHA++65`;%BF2d>w%MEc nz*D9typwrfii0S%mzE$Z5kk!YQ_a_3wqJkAxc&M|ChL6wNc=1f delta 46 zcmV+}0MY->&<>K&4zMT#0@ntUDgz<|I|vGsVFezusRN$nlO!_DgB0qA6zT!D6zT#x EzKCxTZU6uP diff --git a/data/drules_proto_vehicle_clear.txt b/data/drules_proto_vehicle_clear.txt index a74e3a2737..199409d88d 100644 --- a/data/drules_proto_vehicle_clear.txt +++ b/data/drules_proto_vehicle_clear.txt @@ -249,6 +249,27 @@ cont { } cont { name: "aeroway-aerodrome-international" + element { + scale: 7 + symbol { + name: "airport-s" + priority: 10000 + } + } + element { + scale: 8 + symbol { + name: "airport-s" + priority: 10000 + } + } + element { + scale: 9 + symbol { + name: "airport-s" + priority: 10000 + } + } element { scale: 10 area { @@ -19756,7 +19777,7 @@ cont { lines { width: 2.0 color: 13092543 - priority: 1517 + priority: 1764 cap: BUTTCAP } } @@ -19765,7 +19786,7 @@ cont { lines { width: 2.8 color: 13092543 - priority: 1517 + priority: 1764 } } element { @@ -19779,7 +19800,7 @@ cont { dd: 1.5 dd: 3.0 } - priority: 1517 + priority: 1764 } } element { @@ -19793,7 +19814,7 @@ cont { dd: 1.9 dd: 4.0 } - priority: 1517 + priority: 1764 } } element { @@ -19807,7 +19828,7 @@ cont { dd: 2.5 dd: 6.0 } - priority: 1517 + priority: 1764 } } } diff --git a/data/drules_proto_vehicle_dark.bin b/data/drules_proto_vehicle_dark.bin index 90ead5542b2cad33d79e84cab2b43799b6a7f3c2..b00b6faed8242ebbecb465cc929b009a40ceace5 100644 GIT binary patch delta 125 zcmeA;&UfTE-v&8mrcUMe9YXPDz7=kIrcOa_S`dz#AJI3wS@0fhI0s!!XD7ydv delta 38 wcmV+>0NMY<#}0_c4zL~r0?h`KAOj+^egiS;lejU-gLv+Tc Date: Tue, 18 Oct 2022 20:58:07 +0300 Subject: [PATCH 7/8] [search] Set _isCategory_ flag for search after category suggest. Signed-off-by: Viktor Govako --- .../jni/com/mapswithme/maps/SearchEngine.cpp | 39 +++++--------- .../mapswithme/maps/search/SearchAdapter.java | 10 ++-- .../maps/search/SearchFragment.java | 7 ++- .../mapswithme/maps/search/SearchResult.java | 11 ++-- iphone/Maps/Core/Search/MWMSearch.mm | 8 --- iphone/Maps/Core/Search/MWMSearchItemType.h | 2 - .../TableView/MWMSearchTableViewController.mm | 52 +++++++++---------- 7 files changed, 54 insertions(+), 75 deletions(-) diff --git a/android/jni/com/mapswithme/maps/SearchEngine.cpp b/android/jni/com/mapswithme/maps/SearchEngine.cpp index 3a1ce381af..2a5f4f9c54 100644 --- a/android/jni/com/mapswithme/maps/SearchEngine.cpp +++ b/android/jni/com/mapswithme/maps/SearchEngine.cpp @@ -82,34 +82,26 @@ jobject ToJavaResult(Result const & result, search::ProductInfo const & productI env->ReleaseIntArrayElements(ranges.get(), rawArr, 0); ms::LatLon ll = ms::LatLon::Zero(); - string distance; - double distanceInMeters = 0.0; - if (result.HasPoint()) - { - auto const center = result.GetFeatureCenter(); - ll = mercator::ToLatLon(center); - if (hasPosition) - { - distanceInMeters = ms::DistanceOnEarth(lat, lon, - mercator::YToLat(center.y), - mercator::XToLon(center.x)); - distance = measurement_utils::FormatDistance(distanceInMeters); - } - } - - bool popularityHasHigherPriority = PopularityHasHigherPriority(hasPosition, distanceInMeters); + ll = mercator::ToLatLon(result.GetFeatureCenter()); if (result.IsSuggest()) { jni::TScopedLocalRef name(env, jni::ToJavaString(env, result.GetString())); jni::TScopedLocalRef suggest(env, jni::ToJavaString(env, result.GetSuggestionString())); - jobject ret = env->NewObject(g_resultClass, g_suggestConstructor, name.get(), suggest.get(), ll.m_lat, ll.m_lon, ranges.get()); - ASSERT(ret, ()); - return ret; + return env->NewObject(g_resultClass, g_suggestConstructor, name.get(), suggest.get(), ll.m_lat, ll.m_lon, ranges.get()); } - auto const isFeature = result.GetResultType() == Result::Type::Feature; + string distance; + double distanceInMeters = 0.0; + if (result.HasPoint() && hasPosition) + { + distanceInMeters = ms::DistanceOnEarth(lat, lon, ll.m_lat, ll.m_lon); + distance = measurement_utils::FormatDistance(distanceInMeters); + } + + bool const popularityHasHigherPriority = PopularityHasHigherPriority(hasPosition, distanceInMeters); + bool const isFeature = result.GetResultType() == Result::Type::Feature; jni::TScopedLocalRef featureId(env, usermark_helper::CreateFeatureId(env, isFeature ? result.GetFeatureID() : kEmptyFeatureId)); @@ -137,12 +129,9 @@ jobject ToJavaResult(Result const & result, search::ProductInfo const & productI g_popularityConstructor, /// @todo Restore when popularity will be available 0/*static_cast(result.GetRankingInfo().m_popularity)*/)); - jobject ret = - env->NewObject(g_resultClass, g_resultConstructor, name.get(), desc.get(), ll.m_lat, ll.m_lon, - ranges.get(), result.IsHotel(), result.GetStarsCount(), popularity.get()); - ASSERT(ret, ()); - return ret; + return env->NewObject(g_resultClass, g_resultConstructor, name.get(), desc.get(), ll.m_lat, ll.m_lon, + ranges.get(), result.IsHotel(), result.GetStarsCount(), popularity.get()); } jobjectArray BuildSearchResults(vector const & productInfo, diff --git a/android/src/com/mapswithme/maps/search/SearchAdapter.java b/android/src/com/mapswithme/maps/search/SearchAdapter.java index 0862167911..c0f711bb67 100644 --- a/android/src/com/mapswithme/maps/search/SearchAdapter.java +++ b/android/src/com/mapswithme/maps/search/SearchAdapter.java @@ -25,9 +25,6 @@ import com.mapswithme.util.ThemeUtils; import com.mapswithme.util.UiUtils; import com.mapswithme.util.Utils; -import static com.mapswithme.maps.search.SearchResult.TYPE_RESULT; -import static com.mapswithme.maps.search.SearchResult.TYPE_SUGGEST; - class SearchAdapter extends RecyclerView.Adapter { private final SearchFragment mSearchFragment; @@ -123,7 +120,7 @@ class SearchAdapter extends RecyclerView.Adapter; return [MWMSearch manager]->m_productInfo[index]; } -+ (BOOL)isFeatureAt:(NSUInteger)index in:(std::vector const &)array { - auto const &result = [self resultWithContainerIndex:index]; - if (result.GetResultType() != search::Result::Type::Feature) - return NO; - auto const &resultFeatureID = result.GetFeatureID(); - return std::binary_search(array.begin(), array.end(), resultFeatureID); -} - + (MWMSearchItemType)resultTypeWithRow:(NSUInteger)row { auto itemsIndex = [MWMSearch manager].itemsIndex; return [itemsIndex resultTypeWithRow:row]; diff --git a/iphone/Maps/Core/Search/MWMSearchItemType.h b/iphone/Maps/Core/Search/MWMSearchItemType.h index 77bd68e899..c0466510de 100644 --- a/iphone/Maps/Core/Search/MWMSearchItemType.h +++ b/iphone/Maps/Core/Search/MWMSearchItemType.h @@ -1,7 +1,5 @@ typedef NS_ENUM(NSUInteger, MWMSearchItemType) { // Order == priority. MWMSearchItemTypeRegular, - MWMSearchItemTypeMopub, - MWMSearchItemTypeFacebook, MWMSearchItemTypeSuggestion }; diff --git a/iphone/Maps/UI/Search/TableView/MWMSearchTableViewController.mm b/iphone/Maps/UI/Search/TableView/MWMSearchTableViewController.mm index 0ce971bfe1..c3b25ab909 100644 --- a/iphone/Maps/UI/Search/TableView/MWMSearchTableViewController.mm +++ b/iphone/Maps/UI/Search/TableView/MWMSearchTableViewController.mm @@ -81,28 +81,26 @@ NSString *GetLocalizedTypeName(search::Result const &result) { NSAssert(false, @"Invalid reload with outdated SearchIndex"); return [tableView dequeueReusableCellWithCellClass:[MWMSearchCommonCell class] indexPath:indexPath]; } + auto const row = indexPath.row; auto const containerIndex = [MWMSearch containerIndexWithRow:row]; - switch ([MWMSearch resultTypeWithRow:row]) { - case MWMSearchItemTypeRegular: { - auto cell = - static_cast([tableView dequeueReusableCellWithCellClass:[MWMSearchCommonCell class] - indexPath:indexPath]); - auto const &result = [MWMSearch resultWithContainerIndex:containerIndex]; - auto const &productInfo = [MWMSearch productInfoWithContainerIndex:containerIndex]; - auto const typeName = GetLocalizedTypeName(result); - [cell config:result productInfo:productInfo - localizedTypeName:typeName]; + auto const & result = [MWMSearch resultWithContainerIndex:containerIndex]; + + switch ([MWMSearch resultTypeWithRow:row]) + { + case MWMSearchItemTypeRegular: + { + auto cell = static_cast( + [tableView dequeueReusableCellWithCellClass:[MWMSearchCommonCell class] indexPath:indexPath]); + auto const & productInfo = [MWMSearch productInfoWithContainerIndex:containerIndex]; + [cell config:result productInfo:productInfo localizedTypeName:GetLocalizedTypeName(result)]; return cell; } - case MWMSearchItemTypeMopub: - case MWMSearchItemTypeFacebook: { - } - case MWMSearchItemTypeSuggestion: { + case MWMSearchItemTypeSuggestion: + { auto cell = static_cast( [tableView dequeueReusableCellWithCellClass:[MWMSearchSuggestionCell class] indexPath:indexPath]); - auto const &suggestion = [MWMSearch resultWithContainerIndex:containerIndex]; - [cell config:suggestion localizedTypeName:@""]; + [cell config:result localizedTypeName:@""]; cell.isLastCell = row == [MWMSearch suggestionsCount] - 1; return cell; } @@ -115,22 +113,22 @@ NSString *GetLocalizedTypeName(search::Result const &result) { id delegate = self.delegate; auto const row = indexPath.row; auto const containerIndex = [MWMSearch containerIndexWithRow:row]; - switch ([MWMSearch resultTypeWithRow:row]) { - case MWMSearchItemTypeRegular: { - SearchTextField *textField = delegate.searchTextField; + auto const & result = [MWMSearch resultWithContainerIndex:containerIndex]; + + switch ([MWMSearch resultTypeWithRow:row]) + { + case MWMSearchItemTypeRegular: + { + SearchTextField const * textField = delegate.searchTextField; [MWMSearch saveQuery:textField.text forInputLocale:textField.textInputMode.primaryLanguage]; - auto const &result = [MWMSearch resultWithContainerIndex:containerIndex]; [delegate processSearchWithResult:result]; break; } - case MWMSearchItemTypeMopub: - case MWMSearchItemTypeFacebook: + case MWMSearchItemTypeSuggestion: + { + [delegate searchText:@(result.GetSuggestionString().c_str()) forInputLocale:nil + withCategory:result.GetResultType() == search::Result::Type::PureSuggest]; break; - case MWMSearchItemTypeSuggestion: { - auto const &suggestion = [MWMSearch resultWithContainerIndex:containerIndex]; - NSString *suggestionString = @(suggestion.GetSuggestionString().c_str()); - /// @todo Pass withCategory:YES if we tap on category suggestion (not street or city)? - [delegate searchText:suggestionString forInputLocale:nil withCategory:NO]; } } } -- 2.45.3 From 11bea63b46ac425fcc9a0ac20f5e92372df948eb Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Tue, 18 Oct 2022 21:26:55 +0300 Subject: [PATCH 8/8] [android] Bump gradle 7.3.1 Signed-off-by: Viktor Govako --- android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index 33dfc54100..e8b1bf3b88 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -26,7 +26,7 @@ buildscript { ext.googleFirebaseServicesEnabled = project.hasProperty('firebase') ?: googleFirebaseServicesDefault dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:7.3.1' if (googleMobileServicesEnabled) { println("Building with Google Mobile Services") -- 2.45.3