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
path: root/map
diff options
context:
space:
mode:
authorДобрый Ээх <bukharaev@gmail.com>2016-10-07 17:17:03 +0300
committerДобрый Ээх <bukharaev@gmail.com>2016-10-13 21:25:22 +0300
commita65d86ebcf216bd0480c7f576d0eff60df44a160 (patch)
tree0ba4b8802b4d60179190523d327b2246966fc1b8 /map
parenta8067e8826da51278fa78ce652b80cec2848536b (diff)
gps tracking reporter
Diffstat (limited to 'map')
-rw-r--r--map/framework.cpp17
-rw-r--r--map/framework.hpp4
-rw-r--r--map/map_tests/map_tests.pro2
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