diff options
author | Добрый Ээх <bukharaev@gmail.com> | 2016-10-07 17:17:03 +0300 |
---|---|---|
committer | Добрый Ээх <bukharaev@gmail.com> | 2016-10-13 21:25:22 +0300 |
commit | a65d86ebcf216bd0480c7f576d0eff60df44a160 (patch) | |
tree | 0ba4b8802b4d60179190523d327b2246966fc1b8 /map | |
parent | a8067e8826da51278fa78ce652b80cec2848536b (diff) |
gps tracking reporter
Diffstat (limited to 'map')
-rw-r--r-- | map/framework.cpp | 17 | ||||
-rw-r--r-- | map/framework.hpp | 4 | ||||
-rw-r--r-- | map/map_tests/map_tests.pro | 2 |
3 files changed, 22 insertions, 1 deletions
diff --git a/map/framework.cpp b/map/framework.cpp index 947796101f..780c055c89 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -60,6 +60,7 @@ #include "platform/platform.hpp" #include "platform/preferred_languages.hpp" #include "platform/settings.hpp" +#include "platform/socket.hpp" #include "coding/internal/file_data.hpp" #include "coding/zip_reader.hpp" @@ -200,6 +201,8 @@ void Framework::OnLocationUpdate(GpsInfo const & info) CallDrapeFunction(bind(&df::DrapeEngine::SetGpsInfo, _1, rInfo, m_routingSession.IsNavigable(), routeMatchingInfo)); + if (IsTrackingReporterEnabled()) + m_trackingReporter.AddLocation(info); } void Framework::OnCompassUpdate(CompassInfo const & info) @@ -224,6 +227,19 @@ void Framework::SetMyPositionModeListener(TMyPositionModeChanged && fn) m_myPositionListener = move(fn); } +bool Framework::IsTrackingReporterEnabled() const +{ + if (m_currentRouterType != routing::RouterType::Vehicle) + return false; + + if (!m_routingSession.IsOnRoute()) + return false; + + bool allowStat = false; + settings::Get(tracking::Reporter::kAllowKey, allowStat); + return allowStat; +} + void Framework::OnUserPositionChanged(m2::PointD const & position) { MyPositionMarkPoint * myPosition = UserMarkContainer::UserMarkForMyPostion(); @@ -314,6 +330,7 @@ Framework::Framework() , m_storage(platform::migrate::NeedMigrate() ? COUNTRIES_OBSOLETE_FILE : COUNTRIES_FILE) , m_bmManager(*this) , m_isRenderingEnabled(true) + , m_trackingReporter(platform::createMockSocket(), tracking::Reporter::kPushDelayMs) , m_displacementModeManager([this](bool show) { int const mode = show ? dp::displacement::kHotelMode : dp::displacement::kDefaultMode; CallDrapeFunction(bind(&df::DrapeEngine::SetDisplacementMode, _1, mode)); diff --git a/map/framework.hpp b/map/framework.hpp index 961794dd16..eee4821557 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -33,6 +33,8 @@ #include "storage/downloading_policy.hpp" #include "storage/storage.hpp" +#include "tracking/reporter.hpp" + #include "partners_api/booking_api.hpp" #include "partners_api/uber_api.hpp" @@ -161,6 +163,7 @@ protected: uber::Api m_uberApi; bool m_isRenderingEnabled; + tracking::Reporter m_trackingReporter; /// This function will be called by m_storage when latest local files /// is downloaded. @@ -398,6 +401,7 @@ public: void SetMyPositionModeListener(location::TMyPositionModeChanged && fn); private: + bool IsTrackingReporterEnabled() const; void OnUserPositionChanged(m2::PointD const & position); //@} diff --git a/map/map_tests/map_tests.pro b/map/map_tests/map_tests.pro index e44ce96790..d476a428ae 100644 --- a/map/map_tests/map_tests.pro +++ b/map/map_tests/map_tests.pro @@ -6,7 +6,7 @@ CONFIG -= app_bundle TEMPLATE = app ROOT_DIR = ../.. -DEPENDENCIES = map drape_frontend routing search storage drape indexer partners_api platform editor geometry coding base \ +DEPENDENCIES = map drape_frontend routing search storage tracking drape indexer partners_api platform editor geometry coding base \ freetype fribidi expat protobuf tomcrypt jansson osrm stats_client minizip succinct pugixml stats_client DEPENDENCIES *= opening_hours |