diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-11-01 15:27:08 +0300 |
---|---|---|
committer | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-11-02 13:55:24 +0300 |
commit | 4e3f3882adc1dd17bbf344deb3369d6b36d8f641 (patch) | |
tree | 1ef061a49fc2320a07faf45ab84440ae37a5df3e /platform | |
parent | d5bce83367b8aca5fa410e7206fbf5ad6568d183 (diff) |
Added PushWoosh tags initialization
Diffstat (limited to 'platform')
-rw-r--r-- | platform/CMakeLists.txt | 7 | ||||
-rw-r--r-- | platform/marketing_service.cpp | 50 | ||||
-rw-r--r-- | platform/marketing_service.hpp | 58 | ||||
-rw-r--r-- | platform/marketing_service_dummy.cpp | 13 | ||||
-rw-r--r-- | platform/marketing_service_ios.mm | 23 | ||||
-rw-r--r-- | platform/platform.hpp | 18 | ||||
-rw-r--r-- | platform/platform.pro | 41 | ||||
-rw-r--r-- | platform/platform_android.cpp | 4 | ||||
-rw-r--r-- | platform/platform_ios.mm | 18 | ||||
-rw-r--r-- | platform/platform_mac.mm | 13 | ||||
-rw-r--r-- | platform/platform_qt.cpp | 12 | ||||
-rw-r--r-- | platform/platform_tizen.cpp | 12 | ||||
-rw-r--r-- | platform/platform_win.cpp | 16 |
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) -{ -} |