diff --git a/map/framework.cpp b/map/framework.cpp index 7c42d9ff3..0f2a65187 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -295,7 +295,8 @@ Framework::Framework(FrameworkParams const & params, bool loadMaps) [this]() -> StringsBundle const & { return m_stringsBundle; }, [this]() -> power_management::PowerManager const & { return m_powerManager; }), static_cast(*this)) - , m_trafficManager(bind(&Framework::GetMwmsByRect, this, _1, false /* rough */), + , m_trafficManager([this](string const & id) -> string { return m_storage.GetParentIdFor(id); }, + bind(&Framework::GetMwmsByRect, this, _1, false /* rough */), kMaxTrafficCacheSizeBytes, m_routingManager.RoutingSession()) , m_lastReportedCountry(kInvalidCountryId) , m_popularityLoader(m_featuresFetcher.GetDataSource(), POPULARITY_RANKS_FILE_TAG) diff --git a/map/traffic_manager.cpp b/map/traffic_manager.cpp index b3c434ddb..1836079dd 100644 --- a/map/traffic_manager.cpp +++ b/map/traffic_manager.cpp @@ -41,9 +41,11 @@ TrafficManager::CacheEntry::CacheEntry(time_point const & requestT , m_lastAvailability(traffic::TrafficInfo::Availability::Unknown) {} -TrafficManager::TrafficManager(GetMwmsByRectFn const & getMwmsByRectFn, size_t maxCacheSizeBytes, +TrafficManager::TrafficManager(const CountryParentNameGetterFn &countryParentNameGetter, + GetMwmsByRectFn const & getMwmsByRectFn, size_t maxCacheSizeBytes, traffic::TrafficObserver & observer) - : m_getMwmsByRectFn(getMwmsByRectFn) + : m_countryParentNameGetterFn(countryParentNameGetter) + , m_getMwmsByRectFn(getMwmsByRectFn) , m_observer(observer) , m_currentDataVersion(0) , m_state(TrafficState::Disabled) diff --git a/map/traffic_manager.hpp b/map/traffic_manager.hpp index f3169ccc9..e8bcb9956 100644 --- a/map/traffic_manager.hpp +++ b/map/traffic_manager.hpp @@ -9,6 +9,8 @@ #include "indexer/mwm_set.hpp" +#include "openlr/openlr_decoder.hpp" + #include "geometry/point2d.hpp" #include "geometry/polyline2d.hpp" #include "geometry/screenbase.hpp" @@ -31,6 +33,8 @@ class TrafficManager final { public: + using CountryParentNameGetterFn = std::function; + enum class TrafficState { Disabled, @@ -58,7 +62,8 @@ public: using TrafficStateChangedFn = std::function; using GetMwmsByRectFn = std::function(m2::RectD const &)>; - TrafficManager(GetMwmsByRectFn const & getMwmsByRectFn, size_t maxCacheSizeBytes, + TrafficManager(CountryParentNameGetterFn const & countryParentNameGetter, + GetMwmsByRectFn const & getMwmsByRectFn, size_t maxCacheSizeBytes, traffic::TrafficObserver & observer); ~TrafficManager(); @@ -165,6 +170,7 @@ private: std::for_each(activeMwms.begin(), activeMwms.end(), std::forward(f)); } + CountryParentNameGetterFn m_countryParentNameGetterFn; GetMwmsByRectFn m_getMwmsByRectFn; traffic::TrafficObserver & m_observer;