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:
authorSergey Yershov <syershov@maps.me>2016-10-19 16:21:03 +0300
committerGitHub <noreply@github.com>2016-10-19 16:21:03 +0300
commitd27ed175d5e7e5f41c00111a5d7bb90f2c9d85e6 (patch)
treec9afe6f2c472a7f2a53e7035df2668b8b390b095 /map
parent0183d37e1eb6505b4e930554be773bcd56e326ae (diff)
parent5666583532d208c05d6194d1cb28a5b61ad9d75c (diff)
Merge pull request #4498 from dobriy-eeh/gps-stats
gps tracking reporter
Diffstat (limited to 'map')
-rw-r--r--map/framework.cpp28
-rw-r--r--map/framework.hpp4
-rw-r--r--map/map_tests/map_tests.pro2
3 files changed, 33 insertions, 1 deletions
diff --git a/map/framework.cpp b/map/framework.cpp
index c406e71808..110352c18a 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"
@@ -155,6 +156,17 @@ void CancelQuery(weak_ptr<search::ProcessorHandle> & handle)
queryHandle->Cancel();
handle.reset();
}
+
+class StubSocket final : public platform::Socket
+{
+public:
+ // Socket overrides
+ bool Open(string const & host, uint16_t port) override { return false; }
+ void Close() override {}
+ bool Read(uint8_t * data, uint32_t count) override { return false; }
+ bool Write(uint8_t const * data, uint32_t count) override { return false; }
+ void SetTimeout(uint32_t milliseconds) override {}
+};
} // namespace
pair<MwmSet::MwmId, MwmSet::RegResult> Framework::RegisterMap(
@@ -200,6 +212,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 +238,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;
+ UNUSED_VALUE(settings::Get(tracking::Reporter::kEnabledSettingsKey, allowStat));
+ return allowStat;
+}
+
void Framework::OnUserPositionChanged(m2::PointD const & position)
{
MyPositionMarkPoint * myPosition = UserMarkContainer::UserMarkForMyPostion();
@@ -314,6 +341,7 @@ Framework::Framework()
, m_storage(platform::migrate::NeedMigrate() ? COUNTRIES_OBSOLETE_FILE : COUNTRIES_FILE)
, m_bmManager(*this)
, m_isRenderingEnabled(true)
+ , m_trackingReporter(make_unique<StubSocket>(), 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 49fdaa2b4a..712aaa4b58 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