forked from organicmaps/organicmaps
Merge pull request #583 from igrechuhin/ig-statistics
[ios] Updated statistics logging.
This commit is contained in:
commit
87e221c130
37 changed files with 207 additions and 198 deletions
|
@ -89,11 +89,8 @@
|
|||
{
|
||||
// Invert visibility
|
||||
bool visible = !cat->IsVisible();
|
||||
[[Statistics instance] logEvent:kStatBookmarks
|
||||
withParameters:@{
|
||||
kStatAction : kStatToggleVisibility,
|
||||
kStatValue : visible ? kStatVisible : kStatHidden
|
||||
}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatBookmarks, kStatToggleVisibility)
|
||||
withParameters:@{kStatValue : visible ? kStatVisible : kStatHidden}];
|
||||
cell.imageView.image = [UIImage imageNamed:(visible ? @"ic_show_light" : @"ic_hide_light")];
|
||||
cat->SetVisible(visible);
|
||||
cat->SaveToKMLFile();
|
||||
|
@ -225,7 +222,7 @@
|
|||
{
|
||||
if (editingStyle == UITableViewCellEditingStyleDelete)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatRemove}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatRemove)];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:BOOKMARK_CATEGORY_DELETED_NOTIFICATION object:@(indexPath.row)];
|
||||
Framework & f = GetFramework();
|
||||
f.DeleteBmCategory(indexPath.row);
|
||||
|
@ -288,7 +285,7 @@
|
|||
// To hide keyboard and apply changes
|
||||
- (BOOL)textFieldShouldReturn:(UITextField *)textField
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatBookmarks withParameters:@{kStatAction : kStatRename}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatBookmarks, kStatRename)];
|
||||
if (textField.text.length == 0)
|
||||
return YES;
|
||||
|
||||
|
|
|
@ -76,11 +76,8 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi
|
|||
|
||||
- (void)onVisibilitySwitched:(UISwitch *)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatBookmarks
|
||||
withParameters:@{
|
||||
kStatAction : kStatToggleVisibility,
|
||||
kStatValue : sender.on ? kStatVisible : kStatHidden
|
||||
}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatBookmarks, kStatToggleVisibility)
|
||||
withParameters:@{kStatValue : sender.on ? kStatVisible : kStatHidden}];
|
||||
BookmarkCategory * cat = GetFramework().GetBmCategory(m_categoryIndex);
|
||||
cat->SetVisible(sender.on);
|
||||
cat->SaveToKMLFile();
|
||||
|
@ -258,7 +255,7 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi
|
|||
ASSERT(bm, ("NULL bookmark"));
|
||||
if (bm)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatBookmarks withParameters:@{kStatAction : kStatShowOnMap}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatBookmarks, kStatShowOnMap)];
|
||||
// Same as "Close".
|
||||
MapViewController * mapVC = self.navigationController.viewControllers.firstObject;
|
||||
mapVC.controlsManager.searchHidden = YES;
|
||||
|
@ -272,7 +269,7 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi
|
|||
BookmarkCategory const * cat = GetFramework().GetBmCategory(m_categoryIndex);
|
||||
if (cat)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatBookmarks withParameters:@{kStatAction : kStatExport}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatBookmarks, kStatExport)];
|
||||
NSMutableString * catName = [NSMutableString stringWithUTF8String:cat->GetName().c_str()];
|
||||
if (![catName length])
|
||||
[catName setString:@"MapsMe"];
|
||||
|
@ -293,8 +290,9 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi
|
|||
|
||||
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatBookmarks, kStatExport)
|
||||
withParameters:@{kStatValue : kStatKML}];
|
||||
[self dismissViewControllerAnimated:YES completion:nil];
|
||||
[[Statistics instance] logEvent:@"KML Export"];
|
||||
}
|
||||
|
||||
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
|
|
|
@ -126,8 +126,7 @@ static NSString * const kDefaultAlertNibName = @"MWMDefaultAlert";
|
|||
|
||||
+ (instancetype)defaultAlertWithTitle:(nonnull NSString *)title message:(nullable NSString *)message rightButtonTitle:(nonnull NSString *)rightButtonTitle leftButtonTitle:(nullable NSString *)leftButtonTitle rightButtonAction:(nullable RightButtonAction)action
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatOpen}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatOpen}];
|
||||
MWMDefaultAlert * alert = [[[NSBundle mainBundle] loadNibNamed:kDefaultAlertNibName owner:self options:nil] firstObject];
|
||||
alert.titleLabel.localizedText = title;
|
||||
alert.messageLabel.localizedText = message;
|
||||
|
@ -154,8 +153,7 @@ static NSString * const kDefaultAlertNibName = @"MWMDefaultAlert";
|
|||
|
||||
- (IBAction)rightButtonTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatApply}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatApply}];
|
||||
if (self.rightButtonAction)
|
||||
self.rightButtonAction();
|
||||
[self close];
|
||||
|
@ -163,8 +161,7 @@ static NSString * const kDefaultAlertNibName = @"MWMDefaultAlert";
|
|||
|
||||
- (IBAction)leftButtonTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatClose}];
|
||||
[self close];
|
||||
}
|
||||
|
||||
|
|
|
@ -89,8 +89,7 @@ static NSString * const kStatisticsEvent = @"Map download Alert";
|
|||
routes:(vector<storage::TIndex> const &)routes
|
||||
code:(routing::IRouter::ResultCode)code
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatOpen}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatOpen}];
|
||||
MWMDownloadTransitMapAlert * alert = [self alertWithMaps:maps routes:routes];
|
||||
switch (code)
|
||||
{
|
||||
|
@ -157,15 +156,13 @@ static NSString * const kStatisticsEvent = @"Map download Alert";
|
|||
|
||||
- (IBAction)notNowButtonTap:(id)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatClose}];
|
||||
[self close];
|
||||
}
|
||||
|
||||
- (IBAction)downloadButtonTap:(id)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatApply}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatApply}];
|
||||
[self downloadMaps];
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#import "Common.h"
|
||||
#import "MWMDownloaderDialogHeader.h"
|
||||
#import "MWMDownloadTransitMapAlert.h"
|
||||
#import "Statistics.h"
|
||||
|
||||
static NSString * const kDownloaderDialogHeaderNibName = @"MWMDownloaderDialogHeader";
|
||||
|
||||
|
@ -29,6 +30,8 @@ static NSString * const kDownloaderDialogHeaderNibName = @"MWMDownloaderDialogHe
|
|||
- (IBAction)headerButtonTap:(UIButton *)sender
|
||||
{
|
||||
BOOL const currentState = sender.selected;
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatDownloaderDialog, kStatExpand)
|
||||
withParameters:@{kStatValue : currentState ? kStatOff : kStatOn}];
|
||||
sender.selected = !currentState;
|
||||
self.dividerView.hidden = currentState;
|
||||
[UIView animateWithDuration:kDefaultAnimationDuration animations:^
|
||||
|
|
|
@ -19,9 +19,10 @@ static NSString * const kStatisticsEvent = @"Facebook Alert";
|
|||
|
||||
+ (MWMFacebookAlert *)alert
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatOpen}];
|
||||
MWMFacebookAlert * alert = [[[NSBundle mainBundle] loadNibNamed:kFacebookAlertNibName owner:self options:nil] firstObject];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatOpen}];
|
||||
MWMFacebookAlert * alert = [[[NSBundle mainBundle] loadNibNamed:kFacebookAlertNibName
|
||||
owner:self
|
||||
options:nil] firstObject];
|
||||
return alert;
|
||||
}
|
||||
|
||||
|
@ -29,8 +30,7 @@ static NSString * const kStatisticsEvent = @"Facebook Alert";
|
|||
|
||||
- (IBAction)shareButtonTap:(id)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatApply}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatApply}];
|
||||
[Alohalytics logEvent:kFacebookInviteEventName withValue:@"shareTap"];
|
||||
[self close];
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kUDAlreadySharedKey];
|
||||
|
@ -44,8 +44,7 @@ static NSString * const kStatisticsEvent = @"Facebook Alert";
|
|||
|
||||
- (IBAction)notNowButtonTap:(id)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatClose}];
|
||||
[Alohalytics logEvent:kFacebookInviteEventName withValue:@"notNowTap"];
|
||||
[self close];
|
||||
}
|
||||
|
|
|
@ -9,8 +9,7 @@ static NSString * const kStatisticsEvent = @"Location Alert";
|
|||
|
||||
+ (instancetype)alert
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatOpen}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatOpen}];
|
||||
MWMLocationAlert * alert = [[[NSBundle mainBundle] loadNibNamed:kLocationAlertNibName owner:nil options:nil] firstObject];
|
||||
[alert setNeedsCloseAlertAfterEnterBackground];
|
||||
return alert;
|
||||
|
@ -18,16 +17,14 @@ static NSString * const kStatisticsEvent = @"Location Alert";
|
|||
|
||||
- (IBAction)settingsTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatApply}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatApply}];
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
|
||||
[self close];
|
||||
}
|
||||
|
||||
- (IBAction)closeTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatClose}];
|
||||
[self close];
|
||||
}
|
||||
|
||||
|
|
|
@ -27,8 +27,7 @@ static NSString * const kStatisticsEvent = @"Pedestrian Share Alert";
|
|||
|
||||
+ (MWMPedestrianShareAlert *)alert:(BOOL)isFirstLaunch
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatOpen}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatOpen}];
|
||||
MWMPedestrianShareAlert * view = [NSBundle.mainBundle loadNibNamed:NSStringFromClass(self.class) owner:self
|
||||
options:nil].firstObject;
|
||||
view.isFirstLaunch = isFirstLaunch;
|
||||
|
@ -51,8 +50,7 @@ static NSString * const kStatisticsEvent = @"Pedestrian Share Alert";
|
|||
|
||||
- (IBAction)shareButtonTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatApply}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatApply}];
|
||||
[Alohalytics logEvent:kStatisticsEvent withValue:@"shareTap"];
|
||||
MWMActivityViewController * shareVC = [MWMActivityViewController shareControllerForPedestrianRoutesToast];
|
||||
if (IPAD && !isIOSVersionLessThan(8))
|
||||
|
@ -72,8 +70,7 @@ static NSString * const kStatisticsEvent = @"Pedestrian Share Alert";
|
|||
|
||||
- (IBAction)doneButtonTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatClose}];
|
||||
[Alohalytics logEvent:kStatisticsEvent withValue:@"doneTap"];
|
||||
[self close];
|
||||
}
|
||||
|
|
|
@ -33,8 +33,7 @@ static NSString * const kStatisticsEvent = @"Rate Alert";
|
|||
|
||||
+ (instancetype)alert
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatOpen}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatOpen}];
|
||||
MWMRateAlert * alert = [[[NSBundle mainBundle] loadNibNamed:kRateAlertNibName owner:self options:nil] firstObject];
|
||||
[alert configureButtons];
|
||||
return alert;
|
||||
|
@ -113,8 +112,7 @@ static NSString * const kStatisticsEvent = @"Rate Alert";
|
|||
|
||||
- (IBAction)doneTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatClose}];
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"notNowTap"];
|
||||
[self close];
|
||||
}
|
||||
|
@ -122,12 +120,8 @@ static NSString * const kStatisticsEvent = @"Rate Alert";
|
|||
- (IBAction)rateTap
|
||||
{
|
||||
NSUInteger const tag = self.selectedTag;
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{
|
||||
kStatName : kStatisticsEvent,
|
||||
kStatAction : kStatRate,
|
||||
kStatValue : @(tag).stringValue
|
||||
}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatisticsEvent, kStatRate)
|
||||
withParameters:@{kStatValue : @(tag).stringValue}];
|
||||
if (tag == 5)
|
||||
{
|
||||
[[UIApplication sharedApplication] rateVersionFrom:@"ios_pro_popup"];
|
||||
|
@ -150,8 +144,7 @@ static NSString * const kStatisticsEvent = @"Rate Alert";
|
|||
|
||||
- (void)sendFeedback
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatSendEmail}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatisticsEvent, kStatSendEmail)];
|
||||
[Alohalytics logEvent:kRateAlertEventName withValue:@"sendFeedback"];
|
||||
self.alpha = 0.;
|
||||
self.alertController.view.alpha = 0.;
|
||||
|
@ -203,7 +196,7 @@ static NSString * const kStatisticsEvent = @"Rate Alert";
|
|||
{
|
||||
[self.alertController.ownerViewController dismissViewControllerAnimated:YES completion:^
|
||||
{
|
||||
[Statistics.instance logEvent:[NSString stringWithFormat:@"%@ - %@", kRateAlertEventName, @"close"]];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatisticsEvent, kStatClose)];
|
||||
[self close];
|
||||
}];
|
||||
}
|
||||
|
|
|
@ -19,8 +19,7 @@ static NSString * const kStatisticsEvent = @"Routing Disclaimer Alert";
|
|||
|
||||
+ (instancetype)alertWithInitialOrientation:(UIInterfaceOrientation)orientation
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatOpen}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatOpen}];
|
||||
MWMRoutingDisclaimerAlert * alert = [[[NSBundle mainBundle] loadNibNamed:[MWMRoutingDisclaimerAlert className]
|
||||
owner:nil
|
||||
options:nil] firstObject];
|
||||
|
@ -45,8 +44,7 @@ static NSString * const kStatisticsEvent = @"Routing Disclaimer Alert";
|
|||
|
||||
- (IBAction)okTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatAlert
|
||||
withParameters:@{kStatName : kStatisticsEvent, kStatAction : kStatApply}];
|
||||
[[Statistics instance] logEvent:kStatisticsEvent withParameters:@{kStatAction : kStatApply}];
|
||||
[self close];
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#import "MWMCircularProgress.h"
|
||||
#import "MWMDownloadMapRequest.h"
|
||||
#import "MWMDownloadMapRequestView.h"
|
||||
#import "Statistics.h"
|
||||
|
||||
#include "Framework.h"
|
||||
#include "storage/index.hpp"
|
||||
|
@ -119,6 +120,8 @@
|
|||
|
||||
- (void)progressButtonPressed:(nonnull MWMCircularProgress *)progress
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatDownloadRequest, kStatButton)
|
||||
withParameters:@{kStatValue : kStatProgress}];
|
||||
auto & activeMapLayout = GetFramework().GetCountryTree().GetActiveMapLayout();
|
||||
if (progress.state == MWMCircularProgressStateFailed)
|
||||
{
|
||||
|
@ -136,6 +139,7 @@
|
|||
|
||||
- (IBAction)downloadMapTouchUpInside:(nonnull UIButton *)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatDownloadRequest, kStatDownloadMap)];
|
||||
auto const mapType = self.downloadRoutesButton.selected ? MapOptions::MapWithCarRouting : MapOptions::Map;
|
||||
GetFramework().GetCountryTree().GetActiveMapLayout().DownloadMap(self.currentCountryIndex, mapType);
|
||||
self.progressView.progress = 0.0;
|
||||
|
@ -145,6 +149,7 @@
|
|||
|
||||
- (IBAction)downloadRoutesTouchUpInside:(nonnull UIButton *)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatDownloadRequest, kStatDownloadRoute)];
|
||||
sender.selected = !sender.selected;
|
||||
[self.downloadMapButton setTitle:[NSString stringWithFormat:@"%@ (%@)",
|
||||
L(@"downloader_download_map"),
|
||||
|
@ -154,6 +159,7 @@
|
|||
|
||||
- (IBAction)selectMapTouchUpInside:(nonnull UIButton *)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatDownloadRequest, kStatSelectMap)];
|
||||
[self.delegate selectMapsAction];
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#import "Common.h"
|
||||
#import "MWMAPIBar.h"
|
||||
#import "MWMAPIBarView.h"
|
||||
#import "Statistics.h"
|
||||
|
||||
#include "Framework.h"
|
||||
|
||||
|
@ -51,6 +52,7 @@ static NSString * const kKeyPath = @"subviews";
|
|||
|
||||
- (IBAction)back
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatAPI, kStatBack)];
|
||||
auto & f = GetFramework();
|
||||
auto & bm = f.GetBalloonManager();
|
||||
bm.RemovePin();
|
||||
|
|
|
@ -404,14 +404,14 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
BOOL const isSourceMyPosition = self.routeSource.IsMyPosition();
|
||||
BOOL const isDestinationMyPosition = self.routeDestination.IsMyPosition();
|
||||
if (isSourceMyPosition)
|
||||
[[Statistics instance] logEvent:kStatPointToPoint
|
||||
withParameters:@{kStatAction : kStatGo, kStatValue : kStatFromMyPosition}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPointToPoint, kStatGo)
|
||||
withParameters:@{kStatValue : kStatFromMyPosition}];
|
||||
else if (isDestinationMyPosition)
|
||||
[[Statistics instance] logEvent:kStatPointToPoint
|
||||
withParameters:@{kStatAction : kStatGo, kStatValue : kStatToMyPosition}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPointToPoint, kStatGo)
|
||||
withParameters:@{kStatValue : kStatToMyPosition}];
|
||||
else
|
||||
[[Statistics instance] logEvent:kStatPointToPoint
|
||||
withParameters:@{kStatAction : kStatGo, kStatValue : kStatPointToPoint}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPointToPoint, kStatGo)
|
||||
withParameters:@{kStatValue : kStatPointToPoint}];
|
||||
|
||||
if (!isSourceMyPosition)
|
||||
{
|
||||
|
@ -442,7 +442,7 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
|
||||
- (void)didCancelRouting
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPointToPoint withParameters:@{kStatAction : kStatClose}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPointToPoint, kStatClose)];
|
||||
[[MapsAppDelegate theApp].m_locationManager stop:self.navigationManager];
|
||||
self.navigationManager.state = MWMNavigationDashboardStateHidden;
|
||||
GetFramework().CloseRouting();
|
||||
|
@ -455,8 +455,7 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
|
||||
- (void)swapPointsAndRebuildRouteIfPossible
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPointToPoint
|
||||
withParameters:@{kStatAction : kStatSwapRoutingPoints}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPointToPoint, kStatSwapRoutingPoints)];
|
||||
swap(_routeSource, _routeDestination);
|
||||
[self buildRoute];
|
||||
|
||||
|
@ -466,11 +465,8 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
|
||||
- (void)didStartEditingRoutePoint:(BOOL)isSource
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPointToPoint
|
||||
withParameters:@{
|
||||
kStatAction : kStatSearch,
|
||||
kStatValue : (isSource ? kStatSource : kStatDestination)
|
||||
}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPointToPoint, kStatSearch)
|
||||
withParameters:@{kStatValue : (isSource ? kStatSource : kStatDestination)}];
|
||||
MapsAppDelegate.theApp.routingPlaneMode = isSource ? MWMRoutingPlaneModeSearchSource : MWMRoutingPlaneModeSearchDestination;
|
||||
self.searchManager.state = MWMSearchManagerStateDefault;
|
||||
}
|
||||
|
|
|
@ -109,6 +109,7 @@ extern NSString * const kSearchStateKey = @"SearchStateKey";
|
|||
|
||||
- (IBAction)cancelButtonPressed
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatCancel)];
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"searchCancel"];
|
||||
self.state = MWMSearchManagerStateHidden;
|
||||
MapsAppDelegate * a = MapsAppDelegate.theApp;
|
||||
|
|
|
@ -55,8 +55,8 @@ forRowAtIndexPath:(NSIndexPath *)indexPath
|
|||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
NSString * string = @(categoriesNames[indexPath.row]);
|
||||
[[Statistics instance] logEvent:kStatSearch
|
||||
withParameters:@{kStatAction : kStatSelectResult, kStatValue : string}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatSelectResult)
|
||||
withParameters:@{kStatValue : string}];
|
||||
[self.delegate searchText:[L(string) stringByAppendingString:@" "] forInputLocale:nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -145,22 +145,21 @@ forRowAtIndexPath:(NSIndexPath *)indexPath
|
|||
{
|
||||
search::QuerySaver::TSearchRequest const & query = [self queryAtIndex:isRouteSearch ? indexPath.row - 1 : indexPath.row];
|
||||
NSString * queryText = @(query.second.c_str());
|
||||
[[Statistics instance] logEvent:kStatSearch
|
||||
withParameters:@{kStatAction : kStatSelectResult, kStatValue : queryText}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatSelectResult)
|
||||
withParameters:@{kStatValue : queryText}];
|
||||
[self.delegate searchText:queryText forInputLocale:@(query.first.c_str())];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isRouteSearch)
|
||||
{
|
||||
[[Statistics instance]
|
||||
logEvent:kStatSearch
|
||||
withParameters:@{kStatAction : kStatSelectResult, kStatValue : kStatMyPosition}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatSelectResult)
|
||||
withParameters:@{kStatValue : kStatMyPosition}];
|
||||
[self.delegate tapMyPositionFromHistory];
|
||||
return;
|
||||
}
|
||||
[[Statistics instance] logEvent:kStatSearch
|
||||
withParameters:@{kStatAction : kStatSelectResult, kStatValue : kStatClear}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatSelectResult)
|
||||
withParameters:@{kStatValue : kStatClear}];
|
||||
f.ClearSearchHistory();
|
||||
MWMSearchTabbedCollectionViewCell * cell = self.cell;
|
||||
[UIView animateWithDuration:kDefaultAnimationDuration animations:^
|
||||
|
|
|
@ -140,14 +140,12 @@ BOOL isOffsetInButton(CGFloat offset, MWMSearchTabButtonsView * button)
|
|||
switch (btn.tag)
|
||||
{
|
||||
case MWMSearchTabbedViewCellHistory:
|
||||
[[Statistics instance]
|
||||
logEvent:kStatSearch
|
||||
withParameters:@{kStatAction : kStatSelectTab, kStatValue : kStatHistory}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatSelectTab)
|
||||
withParameters:@{kStatValue : kStatHistory}];
|
||||
break;
|
||||
case MWMSearchTabbedViewCellCategories:
|
||||
[[Statistics instance]
|
||||
logEvent:kStatSearch
|
||||
withParameters:@{kStatAction : kStatSelectTab, kStatValue : kStatCategories}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatSelectTab)
|
||||
withParameters:@{kStatValue : kStatCategories}];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -239,9 +239,8 @@ forRowAtIndexPath:(NSIndexPath *)indexPath
|
|||
if (cellType == MWMSearchTableCellTypeSuggestion)
|
||||
{
|
||||
NSString * suggestionString = @(result.GetSuggestionString());
|
||||
[[Statistics instance]
|
||||
logEvent:kStatSearch
|
||||
withParameters:@{kStatAction : kStatSelectResult, kStatValue : suggestionString}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSearch, kStatSelectResult)
|
||||
withParameters:@{kStatValue : suggestionString}];
|
||||
[self.delegate searchText:suggestionString forInputLocale:nil];
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#import "MWMZoomButtons.h"
|
||||
#import "MWMZoomButtonsView.h"
|
||||
#import "Statistics.h"
|
||||
|
||||
#import "3party/Alohalytics/src/alohalytics_objc.h"
|
||||
|
||||
#include "Framework.h"
|
||||
|
@ -55,12 +57,14 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
|
||||
- (void)zoomIn
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatZoom, kStatIn)];
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"+"];
|
||||
[self zoom:2.0];
|
||||
}
|
||||
|
||||
- (void)zoomOut
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatZoom, kStatOut)];
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"-"];
|
||||
[self zoom:0.5];
|
||||
}
|
||||
|
|
|
@ -232,6 +232,8 @@ static NSString * const kNavigationDashboardIPADXibName = @"MWMNiPadNavigationDa
|
|||
|
||||
- (void)progressButtonPressed:(nonnull MWMCircularProgress *)progress
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatNavigationDashboard, kStatButton)
|
||||
withParameters:@{kStatValue : kStatProgress}];
|
||||
MWMCircularProgressState const s = progress.state;
|
||||
if (s == MWMCircularProgressStateSelected || s == MWMCircularProgressStateCompleted)
|
||||
return;
|
||||
|
@ -275,6 +277,7 @@ static NSString * const kNavigationDashboardIPADXibName = @"MWMNiPadNavigationDa
|
|||
|
||||
- (IBAction)navigationCancelPressed:(UIButton *)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatNavigationDashboard, kStatClose)];
|
||||
if (IPAD && self.state != MWMNavigationDashboardStateNavigation)
|
||||
[self.delegate routePreviewDidChangeFrame:{}];
|
||||
[self removePanel:self.nextTurnPanel];
|
||||
|
@ -286,6 +289,7 @@ static NSString * const kNavigationDashboardIPADXibName = @"MWMNiPadNavigationDa
|
|||
- (IBAction)soundTap:(UIButton *)sender
|
||||
{
|
||||
BOOL const isEnable = !sender.selected;
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatNavigationDashboard, isEnable ? kStatOn : kStatOff)];
|
||||
MWMTextToSpeech * tts = [MWMTextToSpeech tts];
|
||||
if (isEnable)
|
||||
[tts enable];
|
||||
|
@ -298,6 +302,7 @@ static NSString * const kNavigationDashboardIPADXibName = @"MWMNiPadNavigationDa
|
|||
|
||||
- (IBAction)navigationGoPressed:(UIButton *)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatNavigationDashboard, kStatGo)];
|
||||
if ([self.delegate didStartFollowing])
|
||||
self.state = MWMNavigationDashboardStateNavigation;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#import "Common.h"
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
#import "MWMTextToSpeech.h"
|
||||
#import "Statistics.h"
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
#include "Framework.h"
|
||||
#include "sound/tts/languages.hpp"
|
||||
|
@ -78,6 +79,8 @@ extern NSString * const kUserDafaultsNeedToEnableTTS = @"UserDefaultsNeedToEnabl
|
|||
|
||||
- (void)setNotificationsLocale:(NSString *)locale
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatTTSSettings, kStatChangeLanguage)
|
||||
withParameters:@{kStatValue : locale}];
|
||||
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
|
||||
[ud setObject:locale forKey:kUserDefaultsTTSLanguage];
|
||||
[ud synchronize];
|
||||
|
|
|
@ -247,11 +247,8 @@ static CGFloat const kAdditionalHeight = 20.;
|
|||
- (IBAction)extendTap
|
||||
{
|
||||
BOOL const isExtended = !self.extendButton.selected;
|
||||
[[Statistics instance] logEvent:kStatPointToPoint
|
||||
withParameters:@{
|
||||
kStatAction : kStatExpand,
|
||||
kStatValue : (isExtended ? kStatYes : kStatNo)
|
||||
}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPointToPoint, kStatExpand)
|
||||
withParameters:@{kStatValue : (isExtended ? kStatYes : kStatNo)}];
|
||||
self.extendButton.selected = isExtended;
|
||||
[self layoutIfNeeded];
|
||||
[self setupActualHeight];
|
||||
|
|
|
@ -152,8 +152,8 @@ static CGFloat const kTitleBottomOffset = 2.;
|
|||
|
||||
- (void)addBookmark
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage
|
||||
withParameters:@{kStatAction : kStatToggleBookmark, kStatValue : kStatAdd}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatToggleBookmark)
|
||||
withParameters:@{kStatValue : kStatAdd}];
|
||||
self.entity.type = MWMPlacePageEntityTypeBookmark;
|
||||
[self.typeDescriptionView removeFromSuperview];
|
||||
self.typeDescriptionView = nil;
|
||||
|
@ -164,8 +164,8 @@ static CGFloat const kTitleBottomOffset = 2.;
|
|||
|
||||
- (void)removeBookmark
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage
|
||||
withParameters:@{kStatAction : kStatToggleBookmark, kStatValue : kStatRemove}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatToggleBookmark)
|
||||
withParameters:@{kStatValue : kStatRemove}];
|
||||
self.entity.type = MWMPlacePageEntityTypeRegular;
|
||||
[self.entity removeBookmarkFromTypes];
|
||||
[self configure];
|
||||
|
@ -181,7 +181,7 @@ static CGFloat const kTitleBottomOffset = 2.;
|
|||
|
||||
- (IBAction)directionButtonTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatCompass}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatCompass)];
|
||||
[self.ownerPlacePage.manager showDirectionViewWithTitle:self.titleLabel.text type:self.typeLabel.text];
|
||||
}
|
||||
|
||||
|
|
|
@ -122,9 +122,8 @@ static NSString * const kBookmarkColorCellIdentifier = @"MWMBookmarkColorCell";
|
|||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
NSString * bookmarkColor = kBookmarkColorsVariant[indexPath.row];
|
||||
[[Statistics instance]
|
||||
logEvent:kStatPlacePage
|
||||
withParameters:@{kStatAction : kStatChangeBookmarkColor, kStatValue : bookmarkColor}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatChangeBookmarkColor)
|
||||
withParameters:@{kStatValue : bookmarkColor}];
|
||||
self.colorWasChanged = YES;
|
||||
self.placePageManager.entity.bookmarkColor = bookmarkColor;
|
||||
if (!self.iPadOwnerNavigationController)
|
||||
|
|
|
@ -193,7 +193,7 @@ static NSString * const kPlacePageViewCenterKeyPath = @"center";
|
|||
|
||||
- (void)willStartEditingBookmarkTitle
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatRename}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatRename)];
|
||||
// This method should be ovverriden.
|
||||
}
|
||||
|
||||
|
|
|
@ -139,14 +139,14 @@ static NSUInteger sWebViewHeight = 0;
|
|||
|
||||
- (IBAction)categoryButtonTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatChangeBookmarkGroup}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatChangeBookmarkGroup)];
|
||||
[self.placePage changeBookmarkCategory];
|
||||
[self.title resignFirstResponder];
|
||||
}
|
||||
|
||||
- (IBAction)editTap
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatChangeBookmarkDescription}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatChangeBookmarkDescription)];
|
||||
[self.placePage changeBookmarkDescription];
|
||||
[self.title resignFirstResponder];
|
||||
}
|
||||
|
|
|
@ -85,16 +85,16 @@ extern NSString * const kUserDefaultsLatLonAsDMSKey;
|
|||
{
|
||||
case MWMPlacePageMetadataTypeURL:
|
||||
case MWMPlacePageMetadataTypeWebsite:
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatOpenSite}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatOpenSite)];
|
||||
break;
|
||||
case MWMPlacePageMetadataTypeEmail:
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatSendEmail}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatSendEmail)];
|
||||
break;
|
||||
case MWMPlacePageMetadataTypePhoneNumber:
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatCallPhoneNumber}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatCallPhoneNumber)];
|
||||
break;
|
||||
case MWMPlacePageMetadataTypeCoordinate:
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatToggleCoordinates}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatToggleCoordinates)];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#import "Common.h"
|
||||
#import "MWMPlacePageNavigationBar.h"
|
||||
#import "MWMiPhonePortraitPlacePage.h"
|
||||
#import "MWMPlacePageViewManager.h"
|
||||
#import "MWMBasePlacePageView.h"
|
||||
#import "MWMiPhonePortraitPlacePage.h"
|
||||
#import "MWMPlacePageEntity.h"
|
||||
#import "MWMPlacePageNavigationBar.h"
|
||||
#import "MWMPlacePageViewManager.h"
|
||||
#import "Statistics.h"
|
||||
#import <objc/runtime.h>
|
||||
|
||||
static NSString * const kPlacePageNavigationBarNibName = @"PlacePageNavigationBar";
|
||||
|
@ -99,6 +100,7 @@ static inline CGPoint const dismissCenter(CGFloat xPosition)
|
|||
|
||||
- (IBAction)backTap:(id)sender
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatBack)];
|
||||
[self dismiss];
|
||||
[self.placePage.manager refreshPlacePage];
|
||||
}
|
||||
|
|
|
@ -190,8 +190,8 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
|
||||
- (void)buildRoute
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage
|
||||
withParameters:@{kStatAction : kStatBuildRoute, kStatValue : kStatDestination}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatBuildRoute)
|
||||
withParameters:@{kStatValue : kStatDestination}];
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"ppRoute"];
|
||||
m2::PointD const & destination = m_userMark->GetUserMark()->GetOrg();
|
||||
m2::PointD const myPosition([MapsAppDelegate theApp].m_locationManager.lastLocation.mercator);
|
||||
|
@ -201,8 +201,8 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
|
||||
- (void)routeFrom
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage
|
||||
withParameters:@{kStatAction : kStatBuildRoute, kStatValue : kStatSource}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatBuildRoute)
|
||||
withParameters:@{kStatValue : kStatSource}];
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"ppRoute"];
|
||||
[self.delegate buildRouteFrom:self.target];
|
||||
[self dismissPlacePage];
|
||||
|
@ -210,8 +210,8 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
|
||||
- (void)routeTo
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage
|
||||
withParameters:@{kStatAction : kStatBuildRoute, kStatValue : kStatDestination}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatBuildRoute)
|
||||
withParameters:@{kStatValue : kStatDestination}];
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"ppRoute"];
|
||||
[self.delegate buildRouteTo:self.target];
|
||||
[self dismissPlacePage];
|
||||
|
@ -228,7 +228,7 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
|
||||
- (void)share
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatPlacePage withParameters:@{kStatAction : kStatShare}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatShare)];
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"ppShare"];
|
||||
MWMPlacePageEntity * entity = self.entity;
|
||||
NSString * title = entity.bookmarkTitle ? entity.bookmarkTitle : entity.title;
|
||||
|
@ -243,6 +243,7 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
|
||||
- (void)apiBack
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatAPI)];
|
||||
ApiMarkPoint const * p = static_cast<ApiMarkPoint const *>(m_userMark->GetUserMark());
|
||||
NSURL * url = [NSURL URLWithString:@(GetFramework().GenerateApiBackUrl(*p).c_str())];
|
||||
[[UIApplication sharedApplication] openURL:url];
|
||||
|
@ -258,6 +259,8 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
|
||||
- (void)addBookmark
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatBookmarks)
|
||||
withParameters:@{kStatValue : kStatAdd}];
|
||||
Framework & f = GetFramework();
|
||||
BookmarkData data = BookmarkData(self.entity.title.UTF8String, f.LastEditedBMType());
|
||||
size_t const categoryIndex = f.LastEditedBMCategory();
|
||||
|
@ -278,6 +281,8 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
|
|||
|
||||
- (void)removeBookmark
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatBookmarks)
|
||||
withParameters:@{kStatValue : kStatRemove}];
|
||||
Framework & f = GetFramework();
|
||||
BookmarkCategory * bookmarkCategory = f.GetBookmarkManager().GetBmCategory(self.entity.bac.first);
|
||||
UserMark const * bookmark = bookmarkCategory->GetBookmark(self.entity.bac.second);
|
||||
|
|
|
@ -141,7 +141,7 @@ void InitLocalizedStrings()
|
|||
|
||||
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
|
||||
{
|
||||
[Statistics.instance logEvent:@"Push received" withParameters:userInfo];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatApplication, kStatPushReceived) withParameters:userInfo];
|
||||
if (![self handleURLPush:userInfo])
|
||||
[PFPush handlePush:userInfo];
|
||||
completionHandler(UIBackgroundFetchResultNoData);
|
||||
|
@ -269,11 +269,8 @@ void InitLocalizedStrings()
|
|||
{
|
||||
if (f.ShowMapForURL([m_geoURL UTF8String]))
|
||||
{
|
||||
if ([m_scheme isEqualToString:@"geo"])
|
||||
[[Statistics instance] logEvent:@"geo Import"];
|
||||
if ([m_scheme isEqualToString:@"ge0"])
|
||||
[[Statistics instance] logEvent:@"ge0(zero) Import"];
|
||||
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatApplication, kStatImport)
|
||||
withParameters:@{kStatValue : m_scheme}];
|
||||
[self showMap];
|
||||
}
|
||||
}
|
||||
|
@ -293,7 +290,8 @@ void InitLocalizedStrings()
|
|||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"KML file added" object:nil];
|
||||
[self showLoadFileAlertIsSuccessful:YES];
|
||||
[[Statistics instance] logEvent:@"KML Import"];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatApplication, kStatImport)
|
||||
withParameters:@{kStatValue : kStatKML}];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -313,7 +311,7 @@ void InitLocalizedStrings()
|
|||
|
||||
[self restoreRouteState];
|
||||
|
||||
[Statistics.instance applicationDidBecomeActive];
|
||||
[[Statistics instance] applicationDidBecomeActive];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
|
@ -327,7 +325,6 @@ void InitLocalizedStrings()
|
|||
{
|
||||
Statistics * statistics = [Statistics instance];
|
||||
BOOL returnValue = [statistics application:application didFinishLaunchingWithOptions:launchOptions];
|
||||
[statistics logEvent:@"Device Info" withParameters:@{@"Country" : [AppInfo sharedInfo].countryCode}];
|
||||
|
||||
NSString * connectionType;
|
||||
switch (Platform::ConnectionStatus())
|
||||
|
@ -343,7 +340,9 @@ void InitLocalizedStrings()
|
|||
}
|
||||
if (!connectionType)
|
||||
connectionType = @"Offline";
|
||||
[statistics logEvent:@"Connection" withParameters:@{@"Type" : connectionType}];
|
||||
[statistics logEvent:kStatDeviceInfo
|
||||
withParameters:
|
||||
@{kStatCountry : [AppInfo sharedInfo].countryCode, kStatConnection : connectionType}];
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
|
|
@ -56,18 +56,12 @@ NSString * httpGe0Url(NSString * shortUrl)
|
|||
itemForActivityType:(NSString *)activityType
|
||||
{
|
||||
NSString * event = @"MWMShareLocationActivityItem:activityViewController:itemForActivityType:";
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatShare, kStatLocation) withParameters:@{kStatAction : activityType}];
|
||||
[Alohalytics logEvent:event withValue:activityType];
|
||||
if ([UIActivityTypeMessage isEqualToString:activityType])
|
||||
{
|
||||
[[Statistics instance] logEvent:@"ge0(zero) MESSAGE Export"];
|
||||
return [self itemForMessageApp];
|
||||
}
|
||||
if ([UIActivityTypeMail isEqualToString:activityType])
|
||||
{
|
||||
[[Statistics instance] logEvent:@"ge0(zero) MAIL Export"];
|
||||
return [self itemForMailApp];
|
||||
}
|
||||
[Statistics.instance logEvent:event withParameters:@{@"type" : activityType}];
|
||||
return [self itemDefault];
|
||||
}
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
itemForActivityType:(NSString *)activityType
|
||||
{
|
||||
NSString * event = @"MWMSharePedestrianRoutesToastActivityItem:activityViewController:itemForActivityType:";
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatShare, kStatSocial) withParameters:@{kStatAction : activityType}];
|
||||
[Alohalytics logEvent:event withValue:activityType];
|
||||
[Statistics.instance logEvent:event withParameters:@{@"type" : activityType}];
|
||||
if ([activityType isEqualToString:UIActivityTypePostToFacebook] ||
|
||||
[activityType isEqualToString:@"com.facebook.Facebook.ShareExtension"] ||
|
||||
[activityType.lowercaseString rangeOfString:@"facebook"].length)
|
||||
|
|
|
@ -66,9 +66,8 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
NSString * itemId = self.items[indexPath.section][@"Items"][indexPath.row][@"Id"];
|
||||
[[Statistics instance]
|
||||
logEvent:kStatSocial
|
||||
withParameters:@{kStatAction : kStatToggleCompassCalibration, kStatValue : itemId}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSocial, kStatToggleCompassCalibration)
|
||||
withParameters:@{kStatValue : itemId}];
|
||||
if ([itemId isEqualToString:@"Facebook"])
|
||||
{
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"likeOnFb"];
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#import <AVFoundation/AVFoundation.h>
|
||||
#import "LinkCell.h"
|
||||
#import "MWMTextToSpeech.h"
|
||||
#import "MWMTTSSettingsViewController.h"
|
||||
#import "SelectableCell.h"
|
||||
#import "Statistics.h"
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
|
||||
static NSString * kSelectTTSLanguageSegueName = @"TTSLanguage";
|
||||
|
||||
|
@ -118,6 +119,8 @@ using namespace std;
|
|||
{
|
||||
if (indexPath.row == _languages.size())
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatTTSSettings, kStatChangeLanguage)
|
||||
withParameters:@{kStatValue : kStatOther}];
|
||||
[self performSegueWithIdentifier:kSelectTTSLanguageSegueName sender:nil];
|
||||
}
|
||||
else
|
||||
|
|
|
@ -156,17 +156,16 @@ typedef NS_ENUM(NSUInteger, Section)
|
|||
- (void)switchCell:(SwitchCell *)cell didChangeValue:(BOOL)value
|
||||
{
|
||||
NSIndexPath * indexPath = [self.tableView indexPathForCell:cell];
|
||||
Statistics * stat = [Statistics instance];
|
||||
if (indexPath.section == SectionAd)
|
||||
{
|
||||
[[Statistics instance]
|
||||
logEvent:kStatSettings
|
||||
[stat logEvent:kStatSettings
|
||||
withParameters:@{kStatAction : kStatMoreApps, kStatValue : (value ? kStatOn : kStatOff)}];
|
||||
Settings::Set(kAdForbiddenSettingsKey, (bool)!value);
|
||||
}
|
||||
else if (indexPath.section == SectionStatistics)
|
||||
{
|
||||
Statistics * stat = [Statistics instance];
|
||||
[stat logEvent:kStatSettings
|
||||
[stat logEvent:kStatEventName(kStatSettings, kStatToggleStatistics)
|
||||
withParameters:
|
||||
@{kStatAction : kStatToggleStatistics, kStatValue : (value ? kStatOn : kStatOff)}];
|
||||
if (value)
|
||||
|
@ -176,25 +175,21 @@ typedef NS_ENUM(NSUInteger, Section)
|
|||
}
|
||||
else if (indexPath.section == SectionZoomButtons)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatSettings
|
||||
withParameters:@{
|
||||
kStatAction : kStatToggleZoomButtonsVisibility,
|
||||
kStatValue : (value ? kStatVisible : kStatHidden)
|
||||
}];
|
||||
[stat logEvent:kStatEventName(kStatSettings, kStatToggleZoomButtonsVisibility)
|
||||
withParameters:@{kStatValue : (value ? kStatVisible : kStatHidden)}];
|
||||
Settings::Set("ZoomButtonsEnabled", (bool)value);
|
||||
[MapsAppDelegate theApp].mapViewController.controlsManager.zoomHidden = !value;
|
||||
}
|
||||
else if (indexPath.section == SectionCalibration)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatSettings
|
||||
withParameters:@{
|
||||
kStatAction : kStatToggleCompassCalibration,
|
||||
kStatValue : (value ? kStatOn : kStatOff)
|
||||
}];
|
||||
[stat logEvent:kStatEventName(kStatSettings, kStatToggleCompassCalibration)
|
||||
withParameters:@{kStatValue : (value ? kStatOn : kStatOff)}];
|
||||
Settings::Set("CompassCalibrationEnabled", (bool)value);
|
||||
}
|
||||
else if (indexPath.section == SectionRouting)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSettings, kStatTTS)
|
||||
withParameters:@{kStatValue : value ? kStatOn : kStatOff}];
|
||||
[[MWMTextToSpeech tts] setNeedToEnable:value];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kTTSStatusWasChangedNotification
|
||||
object:nil
|
||||
|
@ -212,16 +207,17 @@ Settings::Units unitsForIndex(NSInteger index)
|
|||
if (indexPath.section == SectionMetrics)
|
||||
{
|
||||
Settings::Units units = unitsForIndex(indexPath.row);
|
||||
[[Statistics instance]
|
||||
logEvent:kStatSettings
|
||||
withParameters:@{
|
||||
kStatAction : kStatChangeMeasureUnits,
|
||||
kStatValue : (units == Settings::Units::Metric ? kStatKilometers : kStatMiles)
|
||||
}];
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSettings, kStatChangeMeasureUnits)
|
||||
withParameters:@{kStatValue : (units == Settings::Units::Metric ? kStatKilometers : kStatMiles)}];
|
||||
Settings::Set("Units", units);
|
||||
[tableView reloadSections:[NSIndexSet indexSetWithIndex:SectionMetrics] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[[MapsAppDelegate theApp].mapViewController setupMeasurementSystem];
|
||||
}
|
||||
else if (indexPath.section == SectionRouting && indexPath.row == 1)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatSettings, kStatTTS)
|
||||
withParameters:@{kStatAction : kStatChangeLanguage}];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
|
||||
|
|
|
@ -96,27 +96,26 @@ char const * kStatisticsEnabledSettingsKey = "StatisticsEnabled";
|
|||
|
||||
- (void)logLocation:(CLLocation *)location
|
||||
{
|
||||
if (_enabled)
|
||||
if (!_enabled)
|
||||
return;
|
||||
if (!_lastLocationLogTimestamp || [[NSDate date] timeIntervalSinceDate:_lastLocationLogTimestamp] > (60 * 60 * 3))
|
||||
{
|
||||
if (!_lastLocationLogTimestamp || [[NSDate date] timeIntervalSinceDate:_lastLocationLogTimestamp] > (60 * 60 * 3))
|
||||
{
|
||||
_lastLocationLogTimestamp = [NSDate date];
|
||||
CLLocationCoordinate2D const coord = location.coordinate;
|
||||
[Flurry setLatitude:coord.latitude longitude:coord.longitude horizontalAccuracy:location.horizontalAccuracy verticalAccuracy:location.verticalAccuracy];
|
||||
}
|
||||
_lastLocationLogTimestamp = [NSDate date];
|
||||
CLLocationCoordinate2D const coord = location.coordinate;
|
||||
[Flurry setLatitude:coord.latitude longitude:coord.longitude horizontalAccuracy:location.horizontalAccuracy verticalAccuracy:location.verticalAccuracy];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)logEvent:(NSString *)eventName withParameters:(NSDictionary *)parameters
|
||||
{
|
||||
if (_enabled)
|
||||
{
|
||||
NSMutableDictionary * params = [parameters mutableCopy];
|
||||
params[kStatDeviceType] = IPAD ? kStatiPad : kStatiPhone;
|
||||
BOOL isLandscape = UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation);
|
||||
params[kStatOrientation] = isLandscape ? kStatLandscape : kStatPortrait;
|
||||
[Flurry logEvent:eventName withParameters:parameters];
|
||||
}
|
||||
if (!_enabled)
|
||||
return;
|
||||
NSMutableDictionary * params = [parameters mutableCopy];
|
||||
params[kStatDeviceType] = IPAD ? kStatiPad : kStatiPhone;
|
||||
BOOL isLandscape = UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation);
|
||||
params[kStatOrientation] = isLandscape ? kStatLandscape : kStatPortrait;
|
||||
[Flurry logEvent:eventName withParameters:parameters];
|
||||
[Alohalytics logEvent:eventName withDictionary:parameters];
|
||||
}
|
||||
|
||||
- (void)logEvent:(NSString *)eventName
|
||||
|
@ -126,30 +125,29 @@ char const * kStatisticsEnabledSettingsKey = "StatisticsEnabled";
|
|||
|
||||
- (void)logApiUsage:(NSString *)programName
|
||||
{
|
||||
if (_enabled)
|
||||
{
|
||||
if (programName)
|
||||
[self logEvent:@"Api Usage" withParameters: @{@"Application Name" : programName}];
|
||||
else
|
||||
[self logEvent:@"Api Usage" withParameters: @{@"Application Name" : @"Error passing nil as SourceApp name."}];
|
||||
}
|
||||
if (!_enabled)
|
||||
return;
|
||||
if (programName)
|
||||
[self logEvent:@"Api Usage" withParameters: @{@"Application Name" : programName}];
|
||||
else
|
||||
[self logEvent:@"Api Usage" withParameters: @{@"Application Name" : @"Error passing nil as SourceApp name."}];
|
||||
}
|
||||
|
||||
- (void)applicationDidBecomeActive
|
||||
{
|
||||
if (_enabled)
|
||||
{
|
||||
[FBSDKAppEvents activateApp];
|
||||
// Special FB events to improve marketing campaigns quality.
|
||||
[MWMCustomFacebookEvents optimizeExpenses];
|
||||
}
|
||||
if (!_enabled)
|
||||
return;
|
||||
[FBSDKAppEvents activateApp];
|
||||
// Special FB events to improve marketing campaigns quality.
|
||||
[MWMCustomFacebookEvents optimizeExpenses];
|
||||
}
|
||||
|
||||
+ (instancetype)instance
|
||||
{
|
||||
static Statistics * instance;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
dispatch_once(&onceToken, ^
|
||||
{
|
||||
instance = [[Statistics alloc] init];
|
||||
});
|
||||
return instance;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
static NSString * const kStatAPI = @"API";
|
||||
static NSString * const kStatAbout = @"About";
|
||||
static NSString * const kStatAction = @"Action";
|
||||
static NSString * const kStatActionSheet = @"Action sheet";
|
||||
|
@ -6,28 +6,39 @@ static NSString * const kStatAd = @"Ad";
|
|||
static NSString * const kStatAdTitle = @"Ad title";
|
||||
static NSString * const kStatAdd = @"Add";
|
||||
static NSString * const kStatAlert = @"Alert";
|
||||
static NSString * const kStatApplication = @"Application";
|
||||
static NSString * const kStatApply = @"Apply";
|
||||
static NSString * const kStatBack = @"Back";
|
||||
static NSString * const kStatBannerDescription = @"Banner description";
|
||||
static NSString * const kStatBannerTitle = @"Banner title";
|
||||
static NSString * const kStatBookmarks = @"Bookmarks";
|
||||
static NSString * const kStatBuildRoute = @"Build route";
|
||||
static NSString * const kStatButton = @"Button";
|
||||
static NSString * const kStatCallPhoneNumber = @"Call phone number";
|
||||
static NSString * const kStatCancel = @"Cancel";
|
||||
static NSString * const kStatCategories = @"Categories";
|
||||
static NSString * const kStatChangeBookmarkColor = @"Change bookmark color";
|
||||
static NSString * const kStatChangeBookmarkDescription = @"Change bookmark description";
|
||||
static NSString * const kStatChangeBookmarkGroup = @"Change bookmark group";
|
||||
static NSString * const kStatChangeLanguage = @"Change language";
|
||||
static NSString * const kStatChangeMeasureUnits = @"Change measure units";
|
||||
static NSString * const kStatChangeRoutingMode = @"Change routing mode";
|
||||
static NSString * const kStatClear = @"Clear";
|
||||
static NSString * const kStatClose = @"Close";
|
||||
static NSString * const kStatCollapse = @"Collapse";
|
||||
static NSString * const kStatCompass = @"Compass";
|
||||
static NSString * const kStatConnection = @"Connection";
|
||||
static NSString * const kStatCopyright = @"Copyright";
|
||||
static NSString * const kStatCountry = @"Country";
|
||||
static NSString * const kStatDestination = @"Destination";
|
||||
static NSString * const kStatDeviceInfo = @"Device info";
|
||||
static NSString * const kStatDeviceType = @"Device type";
|
||||
static NSString * const kStatDownloadAll = @"Download all";
|
||||
static NSString * const kStatDownloadMap = @"Download map";
|
||||
static NSString * const kStatDownloadMaps = @"Download maps";
|
||||
static NSString * const kStatDownloadRequest = @"Download request";
|
||||
static NSString * const kStatDownloadRoute = @"Download route";
|
||||
static NSString * const kStatDownloaderDialog = @"Downloader dialog";
|
||||
static NSString * const kStatExpand = @"Expand";
|
||||
static NSString * const kStatExpandCategory = @"Expand category";
|
||||
static NSString * const kStatExpandLargeCountry = @"Expand large country";
|
||||
|
@ -37,6 +48,9 @@ static NSString * const kStatGo = @"Go";
|
|||
static NSString * const kStatHelp = @"Help";
|
||||
static NSString * const kStatHidden = @"Hidden";
|
||||
static NSString * const kStatHistory = @"History";
|
||||
static NSString * const kStatImport = @"Import";
|
||||
static NSString * const kStatIn = @"In";
|
||||
static NSString * const kStatKML = @"KML";
|
||||
static NSString * const kStatKilometers = @"Kilometers";
|
||||
static NSString * const kStatLandscape = @"Landscape";
|
||||
static NSString * const kStatLocation = @"Location";
|
||||
|
@ -46,6 +60,7 @@ static NSString * const kStatMiles = @"Miles";
|
|||
static NSString * const kStatMoreApps = @"More apps";
|
||||
static NSString * const kStatMyPosition = @"My position";
|
||||
static NSString * const kStatName = @"Name";
|
||||
static NSString * const kStatNavigationDashboard = @"Navigation dashboard";
|
||||
static NSString * const kStatNo = @"No";
|
||||
static NSString * const kStatOff = @"Off";
|
||||
static NSString * const kStatOn = @"On";
|
||||
|
@ -53,10 +68,14 @@ static NSString * const kStatOpen = @"Open";
|
|||
static NSString * const kStatOpenActionSheet = @"Open action sheet";
|
||||
static NSString * const kStatOpenSite = @"Open site";
|
||||
static NSString * const kStatOrientation = @"Orientation";
|
||||
static NSString * const kStatOther = @"Other";
|
||||
static NSString * const kStatOut = @"Out";
|
||||
static NSString * const kStatPedestrian = @"Pedestrian";
|
||||
static NSString * const kStatPlacePage = @"Place page";
|
||||
static NSString * const kStatPointToPoint = @"Point to point";
|
||||
static NSString * const kStatPortrait = @"Portrait";
|
||||
static NSString * const kStatProgress = @"Progress";
|
||||
static NSString * const kStatPushReceived = @"Push received";
|
||||
static NSString * const kStatRate = @"Rate";
|
||||
static NSString * const kStatRegular = @"Regular";
|
||||
static NSString * const kStatRemove = @"Remove";
|
||||
|
@ -64,6 +83,7 @@ static NSString * const kStatRename = @"Rename";
|
|||
static NSString * const kStatReport = @"Report";
|
||||
static NSString * const kStatSearch = @"Search";
|
||||
static NSString * const kStatSearchEnteredState = @"Search entered state";
|
||||
static NSString * const kStatSelectMap = @"Select map";
|
||||
static NSString * const kStatSelectResult = @"Select result";
|
||||
static NSString * const kStatSelectTab = @"Select tab";
|
||||
static NSString * const kStatSendEmail = @"Send email";
|
||||
|
@ -75,6 +95,8 @@ static NSString * const kStatSocial = @"Social";
|
|||
static NSString * const kStatSource = @"Source";
|
||||
static NSString * const kStatStart = @"Start";
|
||||
static NSString * const kStatSwapRoutingPoints = @"Swap routing points";
|
||||
static NSString * const kStatTTS = @"TTS";
|
||||
static NSString * const kStatTTSSettings = @"TTS settings";
|
||||
static NSString * const kStatTable = @"Table";
|
||||
static NSString * const kStatToMyPosition = @"To my position";
|
||||
static NSString * const kStatToggleBookmark = @"Toggle bookmark";
|
||||
|
@ -90,5 +112,11 @@ static NSString * const kStatValue = @"Value";
|
|||
static NSString * const kStatVehicle = @"Vehicle";
|
||||
static NSString * const kStatVisible = @"Visible";
|
||||
static NSString * const kStatYes = @"Yes";
|
||||
static NSString * const kStatZoom = @"Zoom";
|
||||
static NSString * const kStatiPad = @"iPad";
|
||||
static NSString * const kStatiPhone = @"iPhone";
|
||||
|
||||
static inline NSString * const kStatEventName(NSString * component, NSString * action)
|
||||
{
|
||||
return [NSString stringWithFormat:@"%@ %@", component, action];
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue