From 05885b5ac54ea6655c2a0c484a4498ff57f442d9 Mon Sep 17 00:00:00 2001 From: Aaron Parecki Date: Fri, 1 Feb 2019 16:57:53 -0800 Subject: [PATCH] prevent display from sleeping when gogo tracker is enabled --- GPSLogger/FirstViewController.m | 10 ++++++++++ GPSLogger/GLManager.h | 2 +- GPSLogger/GLManager.m | 8 ++++---- GPSLogger/SecondViewController.m | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/GPSLogger/FirstViewController.m b/GPSLogger/FirstViewController.m index 6637c78..958b616 100644 --- a/GPSLogger/FirstViewController.m +++ b/GPSLogger/FirstViewController.m @@ -86,6 +86,12 @@ - (void)viewWillAppear:(BOOL)animated { } else { self.tripDistanceUnitLabel.text = @"miles"; } + + if([GLManager sharedManager].gogoTrackerEnabled == YES) { + [UIApplication sharedApplication].idleTimerDisabled = YES; + } else { + [UIApplication sharedApplication].idleTimerDisabled = NO; + } } - (void)viewDidDisappear:(BOOL)animated { @@ -93,6 +99,10 @@ - (void)viewDidDisappear:(BOOL)animated { [[NSNotificationCenter defaultCenter] removeObserver:self]; } +- (void)viewWillDisappear:(BOOL)animated { + [UIApplication sharedApplication].idleTimerDisabled = NO; +} + - (void)viewWillUnload { [self.viewRefreshTimer invalidate]; [[NSNotificationCenter defaultCenter] removeObserver:self]; diff --git a/GPSLogger/GLManager.h b/GPSLogger/GLManager.h index 2b9f58c..3c9c7bd 100644 --- a/GPSLogger/GLManager.h +++ b/GPSLogger/GLManager.h @@ -67,7 +67,7 @@ typedef enum { @property (strong, nonatomic) NSNumber *sendingInterval; @property BOOL pausesAutomatically; -@property BOOL gogoTracker; +@property BOOL gogoTrackerEnabled; @property BOOL includeTrackingStats; @property BOOL notificationsEnabled; @property (nonatomic) CLLocationDistance resumesAfterDistance; diff --git a/GPSLogger/GLManager.m b/GPSLogger/GLManager.m index 6511021..7cdd946 100644 --- a/GPSLogger/GLManager.m +++ b/GPSLogger/GLManager.m @@ -688,14 +688,14 @@ - (void)setPausesAutomatically:(BOOL)pausesAutomatically { self.locationManager.pausesLocationUpdatesAutomatically = pausesAutomatically; } -- (BOOL)gogoTracker { +- (BOOL)gogoTrackerEnabled { if([self defaultsKeyExists:GLEnableGogoTrackerDefaultsName]) { return [[NSUserDefaults standardUserDefaults] boolForKey:GLEnableGogoTrackerDefaultsName]; } else { return NO; } } -- (void)setGogoTracker:(BOOL)enabled { +- (void)setGogoTrackerEnabled:(BOOL)enabled { [[NSUserDefaults standardUserDefaults] setBool:enabled forKey:GLEnableGogoTrackerDefaultsName]; [[NSUserDefaults standardUserDefaults] synchronize]; if(enabled == NO) { @@ -1246,7 +1246,7 @@ - (void)startFlightTrackerTimer { - (void)retrieveCurrentFlightData { // Check if the current wifi name matches a known flight provider // if([@"gogoinflight" isEqualToString:[GLManager currentWifiHotSpotName]]) { - if(self.gogoTracker) { + if(self.gogoTrackerEnabled) { // Make a request to the in-flight data URL NSString *endpoint = @"http://airborne.gogoinflight.com/abp/ws/absServices/statusTray"; [_flightHTTPClient GET:endpoint parameters:NULL progress:NULL success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { @@ -1290,7 +1290,7 @@ - (void)retrieveCurrentFlightData { NSLog(@"Error retrieving in-flight data"); // If there was a problem, disable tracking // TODO: maybe do this after some amount of failures? - // self.gogoTracker = NO; + // self.gogoTrackerEnabled = NO; [self _resetFlightTrackerAndStartAgain]; }]; diff --git a/GPSLogger/SecondViewController.m b/GPSLogger/SecondViewController.m index 413b0cd..14759e5 100644 --- a/GPSLogger/SecondViewController.m +++ b/GPSLogger/SecondViewController.m @@ -30,7 +30,7 @@ - (void)viewWillAppear:(BOOL)animated { self.pausesAutomatically.on = [GLManager sharedManager].pausesAutomatically; self.includeTrackingStats.on = [GLManager sharedManager].includeTrackingStats; self.enableNotifications.on = [GLManager sharedManager].notificationsEnabled; - self.enableGogoTracker.on = [GLManager sharedManager].gogoTracker; + self.enableGogoTracker.on = [GLManager sharedManager].gogoTrackerEnabled; if([GLManager sharedManager].apiEndpointURL != nil) { self.apiEndpointField.text = [GLManager sharedManager].apiEndpointURL; @@ -241,7 +241,7 @@ - (IBAction)pointsPerBatchWasChanged:(UISegmentedControl *)sender { } - (IBAction)toggleGogoTracker:(UISwitch *)sender { - [GLManager sharedManager].gogoTracker = sender.on; + [GLManager sharedManager].gogoTrackerEnabled = sender.on; } - (IBAction)toggleTrackingStats:(UISwitch *)sender {