// // CCManageLocation.m // Nextcloud // // Created by Marino Faggiana on 23/07/15. // Copyright (c) 2015 Marino Faggiana. All rights reserved. // // Author Marino Faggiana // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #import "CCManageLocation.h" #import "AppDelegate.h" @implementation CCManageLocation + (CCManageLocation *)sharedInstance { static CCManageLocation *sharedInstance; @synchronized(self) { if (!sharedInstance){ sharedInstance = [CCManageLocation new]; } return sharedInstance; } } - (void)startSignificantChangeUpdates { if (self.locationManager == nil) { self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) [self.locationManager requestAlwaysAuthorization]; } [self.locationManager startMonitoringSignificantLocationChanges]; } - (void)stopSignificantChangeUpdates { [self.locationManager stopMonitoringSignificantLocationChanges]; } - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; CLLocation* location = [locations lastObject]; NSLog(@"[LOG] update locationManager : latitude %+.6f, longitude %+.6f",location.coordinate.latitude, location.coordinate.longitude); appDelegate.currentLatitude = location.coordinate.latitude; appDelegate.currentLongitude = location.coordinate.longitude; [self.delegate changedLocation]; } - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status { [self.delegate statusAuthorizationLocationChanged]; } - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSLog(@"[LOG] locationManager didFailWithError: Unable to start location manager. Error:%@", [error description]); [self.delegate statusAuthorizationLocationChanged]; } @end