From d569ea24c72f9e3949f53a8213d6f993c52f9e79 Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Tue, 1 Sep 2015 18:48:35 -0700 Subject: [ios] Implemented correct turning Alohalytics statistics off if user disabled it in settings. --- iphone/Maps/Classes/MapsAppDelegate.mm | 14 ++++++++++++-- iphone/Maps/Statistics/Statistics.mm | 6 ++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/iphone/Maps/Classes/MapsAppDelegate.mm b/iphone/Maps/Classes/MapsAppDelegate.mm index c61daa03dc..9766a25806 100644 --- a/iphone/Maps/Classes/MapsAppDelegate.mm +++ b/iphone/Maps/Classes/MapsAppDelegate.mm @@ -171,13 +171,23 @@ void InitLocalizedStrings() - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + NSUserDefaults * ud = [NSUserDefaults standardUserDefaults]; // Initialize Alohalytics statistics engine. #ifndef OMIM_PRODUCTION [Alohalytics setDebugMode:YES]; #endif [Alohalytics setup:@"http://localhost:8080" withLaunchOptions:launchOptions]; + // Need to correctly support existing users who has already opted-out from statistics collection. + // TODO(AlexZ): Remove this code in a few releases after September 2nd, 2015. + NSString * const kOneTimeStatisticsDisabledCheck = @"AlohalyticsOneTimeStatisticsDisabledCheck"; + if (![ud boolForKey:kOneTimeStatisticsDisabledCheck]) + { + if (!Statistics.instance.enabled) + [Alohalytics disable]; + [ud setBool:YES forKey:kOneTimeStatisticsDisabledCheck]; + } - NSURL *url = launchOptions[UIApplicationLaunchOptionsURLKey]; + NSURL * url = launchOptions[UIApplicationLaunchOptionsURLKey]; if (url != nil) [self checkLaunchURL:url]; @@ -235,7 +245,7 @@ void InitLocalizedStrings() [self incrementSessionCount]; [self showAlertIfRequired]; } - [[NSUserDefaults standardUserDefaults] synchronize]; + [ud synchronize]; Framework & f = GetFramework(); application.applicationIconBadgeNumber = f.GetCountryTree().GetActiveMapLayout().GetOutOfDateCount(); diff --git a/iphone/Maps/Statistics/Statistics.mm b/iphone/Maps/Statistics/Statistics.mm index 6e7f8a3665..b2311b3f49 100644 --- a/iphone/Maps/Statistics/Statistics.mm +++ b/iphone/Maps/Statistics/Statistics.mm @@ -2,6 +2,8 @@ #import "Flurry.h" #import "AppInfo.h" +#import "3party/Alohalytics/src/alohalytics_objc.h" + #include "platform/settings.hpp" static constexpr char const * kStatisticsEnabledSettingsKey = "StatisticsEnabled"; @@ -71,6 +73,10 @@ static constexpr char const * kStatisticsEnabledSettingsKey = "StatisticsEnabled - (void)setEnabled:(BOOL)enabled { Settings::Set(kStatisticsEnabledSettingsKey, static_cast(enabled)); + if (enabled) + [Alohalytics enable]; + else + [Alohalytics disable]; } + (instancetype)instance -- cgit v1.2.3