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
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-11-01 15:27:08 +0300
committerr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-11-02 13:55:24 +0300
commit4e3f3882adc1dd17bbf344deb3369d6b36d8f641 (patch)
tree1ef061a49fc2320a07faf45ab84440ae37a5df3e /platform
parentd5bce83367b8aca5fa410e7206fbf5ad6568d183 (diff)
Added PushWoosh tags initialization
Diffstat (limited to 'platform')
-rw-r--r--platform/CMakeLists.txt7
-rw-r--r--platform/marketing_service.cpp50
-rw-r--r--platform/marketing_service.hpp58
-rw-r--r--platform/marketing_service_dummy.cpp13
-rw-r--r--platform/marketing_service_ios.mm23
-rw-r--r--platform/platform.hpp18
-rw-r--r--platform/platform.pro41
-rw-r--r--platform/platform_android.cpp4
-rw-r--r--platform/platform_ios.mm18
-rw-r--r--platform/platform_mac.mm13
-rw-r--r--platform/platform_qt.cpp12
-rw-r--r--platform/platform_tizen.cpp12
-rw-r--r--platform/platform_win.cpp16
13 files changed, 180 insertions, 105 deletions
diff --git a/platform/CMakeLists.txt b/platform/CMakeLists.txt
index 160c3f72ec..f749f27217 100644
--- a/platform/CMakeLists.txt
+++ b/platform/CMakeLists.txt
@@ -23,6 +23,8 @@ set(
local_country_file_utils.cpp
local_country_file_utils.hpp
location.hpp
+ marketing_service.cpp
+ marketing_service.hpp
measurement_utils.cpp
measurement_utils.hpp
mwm_traits.cpp
@@ -47,6 +49,7 @@ if(${PLATFORM_IPHONE})
http_thread_apple.h
http_thread_apple.mm
http_client_apple.mm
+ marketing_service_ios.mm
platform_ios.mm
platform_unix_impl.cpp
platform_unix_impl.hpp
@@ -65,6 +68,7 @@ else() # neither iPhone nor Android
${SRC}
location_service.cpp
location_service.hpp
+ marketing_service_dummy.cpp
platform_qt.cpp
wifi_info.hpp
wifi_location_service.cpp
@@ -77,6 +81,7 @@ else() # neither iPhone nor Android
http_client_curl.cpp
http_thread_qt.cpp
http_thread_qt.hpp
+ marketing_service_dummy.cpp
platform_win.cpp
wifi_info_windows.cpp
)
@@ -88,6 +93,7 @@ else() # neither iPhone nor Android
http_client_apple.mm
http_thread_apple.h
http_thread_apple.mm
+ marketing_service_dummy.cpp
platform_mac.mm
platform_unix_impl.cpp
platform_unix_impl.hpp
@@ -99,6 +105,7 @@ else() # neither iPhone nor Android
http_client_curl.cpp
http_thread_qt.cpp
http_thread_qt.hpp
+ marketing_service_dummy.cpp
platform_linux.cpp
platform_unix_impl.cpp
platform_unix_impl.hpp
diff --git a/platform/marketing_service.cpp b/platform/marketing_service.cpp
new file mode 100644
index 0000000000..1f5662ee6d
--- /dev/null
+++ b/platform/marketing_service.cpp
@@ -0,0 +1,50 @@
+#include "platform/marketing_service.hpp"
+
+namespace marketing
+{
+
+// Tags.
+char const * const kMapVersion = "map_version";
+char const * const kMapListing = "map_listing";
+char const * const kMapDownloadDiscovered = "map_download_discovered";
+char const * const kRoutingP2PVehicleDiscovered = "routing_p2p_vehicle_discovered";
+char const * const kRoutingP2PPedestrianDiscovered = "routing_p2p_pedestrian_discovered";
+char const * const kRoutingP2PBicycleDiscovered = "routing_p2p_bicycle_discovered";
+char const * const kRoutingP2PTaxiDiscovered = "routing_p2p_taxi_discovered";
+char const * const kRoutingVehicleDiscovered = "routing_vehicle_discovered";
+char const * const kRoutingPedestrianDiscovered = "routing_pedestrian_discovered";
+char const * const kRoutingBicycleDiscovered = "routing_bicycle_discovered";
+char const * const kRoutingTaxiDiscovered = "routing_taxi_discovered";
+char const * const kEditorAddDiscovered = "editor_add_discovered";
+char const * const kEditorEditDiscovered = "editor_edit_discovered";
+
+// Events.
+char const * const kDownloaderMapActionFinished = "Downloader_Map_action_finished";
+char const * const kSearchEmitResultsAndCoords = "searchEmitResultsAndCoords";
+char const * const kRoutingCalculatingRoute = "Routing_CalculatingRoute";
+char const * const kBookmarksBookmarkAction = "Bookmarks_Bookmark_action";
+char const * const kPlacepageHotelBook = "Placepage_Hotel_book";
+char const * const kEditorAddStart = "EditorAdd_start";
+char const * const kEditorEditStart = "EditorEdit_start";
+
+} // marketing
+
+void MarketingService::ProcessFirstLaunch()
+{
+ // Send initial value for "discovered" tags.
+ using namespace marketing;
+ vector<string> tags =
+ {
+ kMapDownloadDiscovered,
+
+ kRoutingP2PVehicleDiscovered, kRoutingP2PPedestrianDiscovered,
+ kRoutingP2PBicycleDiscovered, kRoutingP2PTaxiDiscovered,
+ kRoutingVehicleDiscovered, kRoutingPedestrianDiscovered,
+ kRoutingBicycleDiscovered, kRoutingTaxiDiscovered,
+
+ kEditorAddDiscovered, kEditorEditDiscovered
+ };
+
+ for (auto const & tag : tags)
+ SendPushWooshTag(tag, vector<string>{"0"});
+}
diff --git a/platform/marketing_service.hpp b/platform/marketing_service.hpp
new file mode 100644
index 0000000000..8d044f45aa
--- /dev/null
+++ b/platform/marketing_service.hpp
@@ -0,0 +1,58 @@
+#pragma once
+
+#include "std/function.hpp"
+#include "std/map.hpp"
+#include "std/string.hpp"
+#include "std/utility.hpp"
+#include "std/vector.hpp"
+
+namespace marketing
+{
+// Tags.
+extern char const * const kMapVersion;
+extern char const * const kMapListing;
+extern char const * const kMapDownloadDiscovered;
+extern char const * const kRoutingP2PVehicleDiscovered;
+extern char const * const kRoutingP2PPedestrianDiscovered;
+extern char const * const kRoutingP2PBicycleDiscovered;
+extern char const * const kRoutingP2PTaxiDiscovered;
+extern char const * const kRoutingVehicleDiscovered;
+extern char const * const kRoutingPedestrianDiscovered;
+extern char const * const kRoutingBicycleDiscovered;
+extern char const * const kRoutingTaxiDiscovered;
+extern char const * const kEditorAddDiscovered;
+extern char const * const kEditorEditDiscovered;
+
+// Events.
+extern char const * const kDownloaderMapActionFinished;
+extern char const * const kSearchEmitResultsAndCoords;
+extern char const * const kRoutingCalculatingRoute;
+extern char const * const kBookmarksBookmarkAction;
+extern char const * const kPlacepageHotelBook;
+extern char const * const kEditorAddStart;
+extern char const * const kEditorEditStart;
+} // marketing
+
+class MarketingService
+{
+public:
+ using PushWooshSenderFn = function<void(string const & tag, vector<string> const & values)>;
+ using MarketingSenderFn = function<void(string const & tag, map<string, string> const & params)>;
+
+ void ProcessFirstLaunch();
+
+ void SetPushWooshSender(PushWooshSenderFn const & fn) { m_pushwooshSender = fn; }
+ void SendPushWooshTag(string const & tag);
+ void SendPushWooshTag(string const & tag, string const & value);
+ void SendPushWooshTag(string const & tag, vector<string> const & values);
+
+ void SetMarketingSender(MarketingSenderFn const & fn) { m_marketingSender = fn; }
+ void SendMarketingEvent(string const & tag, map<string, string> const & params);
+
+private:
+ /// Callback fucntion for setting PushWoosh tags.
+ PushWooshSenderFn m_pushwooshSender;
+
+ /// Callback fucntion for sending marketing events.
+ MarketingSenderFn m_marketingSender;
+};
diff --git a/platform/marketing_service_dummy.cpp b/platform/marketing_service_dummy.cpp
new file mode 100644
index 0000000000..173e7b3c96
--- /dev/null
+++ b/platform/marketing_service_dummy.cpp
@@ -0,0 +1,13 @@
+#include "platform/marketing_service.hpp"
+
+void MarketingService::SendPushWooshTag(string const & tag)
+{}
+
+void MarketingService::SendPushWooshTag(string const & tag, string const & value)
+{}
+
+void MarketingService::SendPushWooshTag(string const & tag, vector<string> const & values)
+{}
+
+void MarketingService::SendMarketingEvent(string const & tag, map<string, string> const & params)
+{}
diff --git a/platform/marketing_service_ios.mm b/platform/marketing_service_ios.mm
new file mode 100644
index 0000000000..7d32d3d0fe
--- /dev/null
+++ b/platform/marketing_service_ios.mm
@@ -0,0 +1,23 @@
+#include "platform/marketing_service.hpp"
+
+void MarketingService::SendPushWooshTag(string const & tag)
+{
+ SendPushWooshTag(tag, vector<string>{"1"});
+}
+
+void MarketingService::SendPushWooshTag(string const & tag, string const & value)
+{
+ SendPushWooshTag(tag, vector<string>{value});
+}
+
+void MarketingService::SendPushWooshTag(string const & tag, vector<string> const & values)
+{
+ if (m_pushwooshSender)
+ m_pushwooshSender(tag, values);
+}
+
+void MarketingService::SendMarketingEvent(string const & tag, map<string, string> const & params)
+{
+ if (m_marketingSender)
+ m_marketingSender(tag, params);
+}
diff --git a/platform/platform.hpp b/platform/platform.hpp
index 47ffba2525..73323df51b 100644
--- a/platform/platform.hpp
+++ b/platform/platform.hpp
@@ -1,6 +1,7 @@
#pragma once
#include "platform/country_defines.hpp"
+#include "platform/marketing_service.hpp"
#include "coding/reader.hpp"
@@ -55,8 +56,6 @@ public:
};
using TFilesWithType = vector<pair<string, EFileType>>;
- using TPushWooshSenderFn = function<void(string const & tag, vector<string> const & values)>;
- using TMarketingSenderFn = function<void(string const & tag, map<string, string> const & params)>;
protected:
/// Usually read-only directory for application resources
@@ -89,11 +88,8 @@ protected:
/// Returns last system call error as EError.
static EError ErrnoToError();
- /// Callback fucntion for setting PushWoosh tags.
- TPushWooshSenderFn m_pushwooshSender;
-
- /// Callback fucntion for sending marketing events.
- TMarketingSenderFn m_marketingSender;
+ /// Platform-dependent marketing services.
+ MarketingService m_marketingService;
public:
Platform();
@@ -233,13 +229,7 @@ public:
void SetupMeasurementSystem() const;
- void SetPushWooshSender(TPushWooshSenderFn const & fn) { m_pushwooshSender = fn; }
- void SendPushWooshTag(string const & tag);
- void SendPushWooshTag(string const & tag, string const & value);
- void SendPushWooshTag(string const & tag, vector<string> const & values);
-
- void SetMarketingSender(TMarketingSenderFn const & fn) { m_marketingSender = fn; }
- void SendMarketingEvent(string const & tag, map<string, string> const & params);
+ MarketingService & GetMarketingService() { return m_marketingService; }
private:
void GetSystemFontNames(FilesList & res) const;
diff --git a/platform/platform.pro b/platform/platform.pro
index d05cc1f1e4..1d3462a463 100644
--- a/platform/platform.pro
+++ b/platform/platform.pro
@@ -13,11 +13,12 @@ INCLUDEPATH += $$ROOT_DIR/3party/jansson/src
!iphone*:!android*:!tizen {
QT *= core
- SOURCES += platform_qt.cpp \
- wifi_location_service.cpp \
- location_service.cpp
- HEADERS += wifi_info.hpp \
- location_service.hpp
+ SOURCES += location_service.cpp \
+ marketing_service_dummy.cpp \
+ platform_qt.cpp \
+ wifi_location_service.cpp
+ HEADERS += location_service.hpp \
+ wifi_info.hpp
!macx-* {
QT *= network
SOURCES += http_thread_qt.cpp
@@ -25,24 +26,29 @@ INCLUDEPATH += $$ROOT_DIR/3party/jansson/src
}
win32* {
- SOURCES += platform_win.cpp \
+ SOURCES += marketing_service_dummy.cpp \
+ platform_win.cpp \
wifi_info_windows.cpp
} else:macx-* {
- OBJECTIVE_SOURCES += platform_mac.mm \
+ OBJECTIVE_SOURCES += marketing_service_dummy.cpp \
+ platform_mac.mm \
apple_location_service.mm
} else:linux* {
- SOURCES += platform_linux.cpp
+ SOURCES += marketing_service_dummy.cpp \
+ platform_linux.cpp
}
} else:iphone* {
- OBJECTIVE_SOURCES += platform_ios.mm
+ OBJECTIVE_SOURCES += marketing_service_ios.mm \
+ platform_ios.mm
} else:android* {
- SOURCES += platform_android.cpp \
+ SOURCES += platform_android.cpp
} else:tizen* {
- HEADERS += tizen_utils.hpp \
- http_thread_tizen.hpp
- SOURCES += platform_tizen.cpp \
- tizen_utils.cpp \
- http_thread_tizen.cpp \
+ HEADERS += http_thread_tizen.hpp \
+ tizen_utils.hpp
+ SOURCES += http_thread_tizen.cpp \
+ marketing_service_dummy.cpp \
+ platform_tizen.cpp \
+ tizen_utils.cpp
}
macx-*|iphone* {
@@ -61,7 +67,8 @@ linux*|win* {
!win32* {
HEADERS += platform_unix_impl.hpp
- SOURCES += platform_unix_impl.cpp
+ SOURCES += marketing_service_dummy.cpp \
+ platform_unix_impl.cpp
}
# common sources for all platforms
@@ -79,6 +86,7 @@ HEADERS += \
local_country_file.hpp \
local_country_file_utils.hpp \
location.hpp \
+ marketing_service.hpp \
measurement_utils.hpp \
mwm_traits.hpp \
mwm_version.hpp \
@@ -98,6 +106,7 @@ SOURCES += \
http_request.cpp \
local_country_file.cpp \
local_country_file_utils.cpp \
+ marketing_service.cpp \
measurement_utils.cpp \
mwm_traits.cpp \
mwm_version.cpp \
diff --git a/platform/platform_android.cpp b/platform/platform_android.cpp
index e8dacd3f8f..93b7011a57 100644
--- a/platform/platform_android.cpp
+++ b/platform/platform_android.cpp
@@ -262,10 +262,6 @@ void Platform::SetupMeasurementSystem() const
/// @see implementation of methods below in android/jni/com/.../Platform.cpp
// void Platform::RunOnGuiThread(TFunctor const & fn){}
-// void Platform::SendPushWooshTag(string const & tag){}
-// void Platform::SendPushWooshTag(string const & tag, string const & value){}
-// void Platform::SendPushWooshTag(string const & tag, vector<string> const & values){}
-// void Platform::SendMarketingEvent(string const & tag, map<string, string> const & params){}
namespace
{
diff --git a/platform/platform_ios.mm b/platform/platform_ios.mm
index 0d50d04d29..ce6af8489d 100644
--- a/platform/platform_ios.mm
+++ b/platform/platform_ios.mm
@@ -215,24 +215,6 @@ void Platform::SetupMeasurementSystem() const
settings::Set(settings::kMeasurementUnits, units);
}
-void Platform::SendPushWooshTag(string const & tag) { SendPushWooshTag(tag, vector<string>{"1"}); }
-void Platform::SendPushWooshTag(string const & tag, string const & value)
-{
- SendPushWooshTag(tag, vector<string>{value});
-}
-
-void Platform::SendPushWooshTag(string const & tag, vector<string> const & values)
-{
- if (m_pushwooshSender)
- m_pushwooshSender(tag, values);
-}
-
-void Platform::SendMarketingEvent(string const & tag, map<string, string> const & params)
-{
- if (m_marketingSender)
- m_marketingSender(tag, params);
-}
-
////////////////////////////////////////////////////////////////////////
extern Platform & GetPlatform()
{
diff --git a/platform/platform_mac.mm b/platform/platform_mac.mm
index 062e06b64b..4041d0fa90 100644
--- a/platform/platform_mac.mm
+++ b/platform/platform_mac.mm
@@ -135,16 +135,3 @@ Platform::EConnectionType Platform::ConnectionStatus()
return EConnectionType::CONNECTION_NONE;
return EConnectionType::CONNECTION_WIFI;
}
-
-void Platform::SendPushWooshTag(string const & tag)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, string const & value)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, vector<string> const & values)
-{
-}
-void Platform::SendMarketingEvent(string const & tag, map<string, string> const & params) {}
diff --git a/platform/platform_qt.cpp b/platform/platform_qt.cpp
index 4a7069f00a..cba405d065 100644
--- a/platform/platform_qt.cpp
+++ b/platform/platform_qt.cpp
@@ -96,18 +96,6 @@ void Platform::RunAsync(TFunctor const & fn, Priority p)
async(fn);
}
-void Platform::SendPushWooshTag(string const & tag)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, string const & value)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, vector<string> const & values)
-{
-}
-void Platform::SendMarketingEvent(string const & tag, map<string, string> const & params) {}
#endif // defined(OMIM_OS_LINUX)
extern Platform & GetPlatform()
diff --git a/platform/platform_tizen.cpp b/platform/platform_tizen.cpp
index 43313a8ebd..7c4001e759 100644
--- a/platform/platform_tizen.cpp
+++ b/platform/platform_tizen.cpp
@@ -109,18 +109,6 @@ void Platform::GetSystemFontNames(FilesList & res) const
{
}
-void Platform::SendPushWooshTag(string const & tag)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, string const & value)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, vector<string> const & values)
-{
-}
-
extern Platform & GetPlatform()
{
static Platform platform;
diff --git a/platform/platform_win.cpp b/platform/platform_win.cpp
index b4571f46cf..c494d80e43 100644
--- a/platform/platform_win.cpp
+++ b/platform/platform_win.cpp
@@ -176,19 +176,3 @@ bool Platform::GetFileSizeByFullPath(string const & filePath, uint64_t & size)
}
return false;
}
-
-void Platform::GetSystemFontNames(FilesList & res) const
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, string const & value)
-{
-}
-
-void Platform::SendPushWooshTag(string const & tag, vector<string> const & values)
-{
-}