Merge pull request #583 from igrechuhin/ig-statistics

[ios] Updated statistics logging.
This commit is contained in:
Vlad Mihaylenko 2015-11-19 12:14:48 +03:00
commit 87e221c130
37 changed files with 207 additions and 198 deletions

View file

@ -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;

View file

@ -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

View file

@ -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];
}

View file

@ -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];
}

View file

@ -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:^

View file

@ -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];
}

View file

@ -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];
}

View file

@ -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];
}

View file

@ -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];
}];
}

View file

@ -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];
}

View file

@ -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];
}

View file

@ -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();

View file

@ -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;
}

View file

@ -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;

View file

@ -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];
}

View file

@ -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:^

View file

@ -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;

View file

@ -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

View file

@ -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];
}

View file

@ -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;
}

View file

@ -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];

View file

@ -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];

View file

@ -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];
}

View file

@ -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)

View file

@ -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.
}

View file

@ -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];
}

View file

@ -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;

View file

@ -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];
}

View file

@ -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);

View file

@ -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;
}

View file

@ -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];
}

View file

@ -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)

View file

@ -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"];

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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];
}