#1352 - Adding start / stop visit monitoring infrastructure and integrating it with pause / resume metrics api

This commit is contained in:
Brad Leege
2015-04-27 17:37:39 -04:00
parent 353e5661de
commit 5092d72599
3 changed files with 19 additions and 0 deletions

View File

@@ -7,5 +7,7 @@
+ (instancetype)sharedManager;
+ (void) startUpdatingLocation;
+ (void) stopUpdatingLocation;
+ (void) startMonitoringVisits;
+ (void) stopMonitoringVisits;
@end

View File

@@ -271,6 +271,7 @@ NSString *const MGLEventGestureRotateStart = @"Rotation";
}
[MGLMapboxEvents sharedManager].isPaused = YES;
[MGLMetricsLocationManager stopUpdatingLocation];
[MGLMetricsLocationManager stopMonitoringVisits];
}
// Must be called from the main thread.
@@ -282,6 +283,7 @@ NSString *const MGLEventGestureRotateStart = @"Rotation";
}
[MGLMapboxEvents sharedManager].isPaused = NO;
[MGLMetricsLocationManager startUpdatingLocation];
[MGLMetricsLocationManager startMonitoringVisits];
}
// Can be called from any thread. Can be called rapidly from

View File

@@ -37,6 +37,18 @@
[[MGLMetricsLocationManager sharedManager].locationManager stopUpdatingLocation];
}
+ (void) startMonitoringVisits {
if ([[MGLMetricsLocationManager sharedManager].locationManager respondsToSelector:@selector(startMonitoringVisits)]) {
[[MGLMetricsLocationManager sharedManager].locationManager startMonitoringVisits];
}
}
+ (void) stopMonitoringVisits {
if ([[MGLMetricsLocationManager sharedManager].locationManager respondsToSelector:@selector(stopMonitoringVisits)]) {
[[MGLMetricsLocationManager sharedManager].locationManager stopMonitoringVisits];
}
}
#pragma mark CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
// Iterate through locations to pass all data
@@ -65,10 +77,12 @@
case kCLAuthorizationStatusDenied:
newStatus = @"User Explcitly Denied";
[MGLMetricsLocationManager stopUpdatingLocation];
[MGLMetricsLocationManager stopMonitoringVisits];
break;
case kCLAuthorizationStatusAuthorized:
newStatus = @"User Has Authorized / Authorized Always";
[MGLMetricsLocationManager startUpdatingLocation];
[MGLMetricsLocationManager startMonitoringVisits];
break;
// case kCLAuthorizationStatusAuthorizedAlways:
// newStatus = @"Not Determined";
@@ -76,6 +90,7 @@
case kCLAuthorizationStatusAuthorizedWhenInUse:
newStatus = @"User Has Authorized When In Use Only";
[MGLMetricsLocationManager startUpdatingLocation];
[MGLMetricsLocationManager startMonitoringVisits];
break;
default:
newStatus = @"Unknown";