From b3f22d4cf5303ae9cf03a3225c435515909d998c Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Wed, 29 Nov 2017 17:38:21 +0300 Subject: [PATCH] Added URLs for discovery manager --- .../maps/discovery/DiscoveryManager.cpp | 12 ++++++++++++ .../maps/discovery/DiscoveryManager.java | 6 ++++++ map/discovery/discovery_manager.cpp | 14 ++++++++++++++ map/discovery/discovery_manager.hpp | 3 +++ map/framework.cpp | 19 +++++++++++++++++-- map/framework.hpp | 6 ++++++ 6 files changed, 58 insertions(+), 2 deletions(-) diff --git a/android/jni/com/mapswithme/maps/discovery/DiscoveryManager.cpp b/android/jni/com/mapswithme/maps/discovery/DiscoveryManager.cpp index fb5b4c9a24..fb40202fd2 100644 --- a/android/jni/com/mapswithme/maps/discovery/DiscoveryManager.cpp +++ b/android/jni/com/mapswithme/maps/discovery/DiscoveryManager.cpp @@ -180,4 +180,16 @@ Java_com_mapswithme_maps_discovery_DiscoveryManager_nativeDiscover(JNIEnv * env, g_lastRequestId = g_framework->NativeFramework()->Discover(std::move(p), DiscoveryCallback(), std::bind(&OnDiscoveryError, _1, _2)); } + +JNIEXPORT jstring JNICALL +Java_com_mapswithme_maps_discovery_DiscoveryManager_nativeGetViatorUrl(JNIEnv * env, jclass) +{ + return jni::ToJavaString(env, g_framework->NativeFramework()->GetDiscoveryViatorUrl()); +} + +JNIEXPORT jstring JNICALL +Java_com_mapswithme_maps_discovery_DiscoveryManager_nativeGetLocalExpertsUrl(JNIEnv * env, jclass) +{ + return jni::ToJavaString(env, g_framework->NativeFramework()->GetDiscoveryLocalExpertsUrl()); +} } // extern "C" diff --git a/android/src/com/mapswithme/maps/discovery/DiscoveryManager.java b/android/src/com/mapswithme/maps/discovery/DiscoveryManager.java index e5549eacf9..97fa0cfde0 100644 --- a/android/src/com/mapswithme/maps/discovery/DiscoveryManager.java +++ b/android/src/com/mapswithme/maps/discovery/DiscoveryManager.java @@ -77,4 +77,10 @@ enum DiscoveryManager } public static native void nativeDiscover(@NonNull DiscoveryParams params); + + @NonNull + public static native String nativeGetViatorUrl(); + + @NonNull + public static native String nativeGetLocalExpertsUrl(); } diff --git a/map/discovery/discovery_manager.cpp b/map/discovery/discovery_manager.cpp index e4cc883185..400a4c30c7 100644 --- a/map/discovery/discovery_manager.cpp +++ b/map/discovery/discovery_manager.cpp @@ -39,6 +39,20 @@ search::SearchParams Manager::GetSearchParams(Manager::Params const & params, It return p; } +std::string Manager::GetViatorUrl(m2::PointD const & point) const +{ + auto const viatorId = GetCityViatorId(point); + if (viatorId.empty()) + return {}; + return viator::Api::GetCityUrl(viatorId); +} + +std::string Manager::GetLocalExpertsUrl(m2::PointD const & point) const +{ + UNUSED_VALUE(point); + return locals::Api::GetLocalsPageUrl(); +} + std::string Manager::GetCityViatorId(m2::PointD const & point) const { ASSERT_THREAD_CHECKER(m_threadChecker, ()); diff --git a/map/discovery/discovery_manager.hpp b/map/discovery/discovery_manager.hpp index ebf8577117..dc4278e0c0 100644 --- a/map/discovery/discovery_manager.hpp +++ b/map/discovery/discovery_manager.hpp @@ -128,6 +128,9 @@ public: return requestId; } + std::string GetViatorUrl(m2::PointD const & point) const; + std::string GetLocalExpertsUrl(m2::PointD const & point) const; + private: static search::SearchParams GetSearchParams(Params const & params, ItemType const type); std::string GetCityViatorId(m2::PointD const & point) const; diff --git a/map/framework.cpp b/map/framework.cpp index dce92e6d0d..76cc66dce1 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -2547,8 +2547,7 @@ discovery::Manager::Params Framework::GetDiscoveryParams( { auto constexpr kRectSideM = 2000.0; discovery::Manager::Params p; - auto const currentPosition = GetCurrentPosition(); - p.m_viewportCenter = currentPosition ? *currentPosition : GetViewportCenter(); + p.m_viewportCenter = GetDiscoveryViewportCenter(); p.m_viewport = MercatorBounds::RectByCenterXYAndSizeInMeters(p.m_viewportCenter, kRectSideM); p.m_curency = clientParams.m_currency; p.m_lang = clientParams.m_lang; @@ -2557,6 +2556,22 @@ discovery::Manager::Params Framework::GetDiscoveryParams( return p; } +std::string Framework::GetDiscoveryViatorUrl() const +{ + return m_discoveryManager->GetViatorUrl(GetDiscoveryViewportCenter()); +} + +std::string Framework::GetDiscoveryLocalExpertsUrl() const +{ + return m_discoveryManager->GetLocalExpertsUrl(GetDiscoveryViewportCenter()); +} + +m2::PointD Framework::GetDiscoveryViewportCenter() const +{ + auto const currentPosition = GetCurrentPosition(); + return currentPosition ? *currentPosition : GetViewportCenter(); +} + vector Framework::GetSelectedFeatureTriangles() const { vector triangles; diff --git a/map/framework.hpp b/map/framework.hpp index 70b6962338..31a3c8ac95 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -758,6 +758,12 @@ public: discovery::Manager::Params GetDiscoveryParams(discovery::ClientParams && clientParams) const; + std::string GetDiscoveryViatorUrl() const; + std::string GetDiscoveryLocalExpertsUrl() const; + +private: + m2::PointD GetDiscoveryViewportCenter() const; + public: /// Routing Manager RoutingManager & GetRoutingManager() { return m_routingManager; }