aboutsummaryrefslogtreecommitdiffstats
path: root/iphone/FixMyStreet/MyCLController.m
diff options
context:
space:
mode:
Diffstat (limited to 'iphone/FixMyStreet/MyCLController.m')
-rwxr-xr-xiphone/FixMyStreet/MyCLController.m193
1 files changed, 0 insertions, 193 deletions
diff --git a/iphone/FixMyStreet/MyCLController.m b/iphone/FixMyStreet/MyCLController.m
deleted file mode 100755
index b5f303337..000000000
--- a/iphone/FixMyStreet/MyCLController.m
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
-
-File: MyCLController.m
-Abstract: Singleton class used to talk to CoreLocation and send results back to
-the app's view controllers.
-
-Version: 1.1
-
-Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc.
-("Apple") in consideration of your agreement to the following terms, and your
-use, installation, modification or redistribution of this Apple software
-constitutes acceptance of these terms. If you do not agree with these terms,
-please do not use, install, modify or redistribute this Apple software.
-
-In consideration of your agreement to abide by the following terms, and subject
-to these terms, Apple grants you a personal, non-exclusive license, under
-Apple's copyrights in this original Apple software (the "Apple Software"), to
-use, reproduce, modify and redistribute the Apple Software, with or without
-modifications, in source and/or binary forms; provided that if you redistribute
-the Apple Software in its entirety and without modifications, you must retain
-this notice and the following text and disclaimers in all such redistributions
-of the Apple Software.
-Neither the name, trademarks, service marks or logos of Apple Inc. may be used
-to endorse or promote products derived from the Apple Software without specific
-prior written permission from Apple. Except as expressly stated in this notice,
-no other rights or licenses, express or implied, are granted by Apple herein,
-including but not limited to any patent rights that may be infringed by your
-derivative works or by other works in which the Apple Software may be
-incorporated.
-
-The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO
-WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
-WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
-COMBINATION WITH YOUR PRODUCTS.
-
-IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR
-DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF
-CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF
-APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Copyright (C) 2008 Apple Inc. All Rights Reserved.
-
-*/
-
-#import "MyCLController.h"
-
-// This is a singleton class, see below
-static MyCLController *sharedCLDelegate = nil;
-
-@implementation MyCLController
-
-@synthesize delegate, locationManager, updating;
-
-- (id) init {
- self = [super init];
- if (self != nil) {
- self.locationManager = [[[CLLocationManager alloc] init] autorelease];
- self.locationManager.delegate = self; // Tells the location manager to send updates to this object
- }
- return self;
-}
-
--(void)startUpdatingLocation {
- self.updating = YES;
- [self.locationManager startUpdatingLocation];
-}
-
--(void)stopUpdatingLocation {
- self.updating = NO;
- [self.locationManager stopUpdatingLocation];
-}
-
-// Called when the location is updated
-- (void)locationManager:(CLLocationManager *)manager
- didUpdateToLocation:(CLLocation *)newLocation
- fromLocation:(CLLocation *)oldLocation
-{
-
- // Negative accuracy means an invalid or unavailable measurement
- if (signbit(newLocation.horizontalAccuracy)) {
- return;
- }
-
- // If location timestamp was ages ago, it's a cached one; ignore it
- NSTimeInterval howRecent = [newLocation.timestamp timeIntervalSinceNow];
- if (abs(howRecent) > 5.0) {
- return;
- }
-
- [self.delegate newLocationUpdate:newLocation];
-}
-
-
-// Called when there is an error getting the location
-- (void)locationManager:(CLLocationManager *)manager
- didFailWithError:(NSError *)error
-{
- NSMutableString *errorString = [[[NSMutableString alloc] init] autorelease];
-
- if ([error domain] == kCLErrorDomain) {
-
- // We handle CoreLocation-related errors here
-
- switch ([error code]) {
- // This error code is usually returned whenever user taps "Don't Allow" in response to
- // being told your app wants to access the current location. Once this happens, you cannot
- // attempt to get the location again until the app has quit and relaunched.
- //
- // "Don't Allow" on two successive app launches is the same as saying "never allow". The user
- // can reset this for all apps by going to Settings > General > Reset > Reset Location Warnings.
- //
- case kCLErrorDenied:
- [self stopUpdatingLocation];
- [self.delegate newLocationError:@"FixMyStreet needs your location to know where your problem is."];
- break;
-
- // This error code is usually returned whenever the device has no data or WiFi connectivity,
- // or when the location cannot be determined for some other reason.
- //
- // CoreLocation will keep trying, so you can keep waiting, or prompt the user.
- //
- case kCLErrorLocationUnknown:
- [errorString appendFormat:@"%@\n", NSLocalizedString(@"LocationUnknown", nil)];
- break;
-
- // We shouldn't ever get an unknown error code, but just in case...
- //
- default:
- [errorString appendFormat:@"%@ %d\n", NSLocalizedString(@"GenericLocationError", nil), [error code]];
- break;
- }
- } else {
- // We handle all non-CoreLocation errors here
- // (we depend on localizedDescription for localization)
- [errorString appendFormat:@"Error domain: \"%@\" Error code: %d\n", [error domain], [error code]];
- [errorString appendFormat:@"Description: \"%@\"\n", [error localizedDescription]];
- }
-
- self.updating = NO;
-
- // Send the update to our delegate
- // [self.delegate newLocationUpdate:errorString];
-}
-
-#pragma mark ---- singleton object methods ----
-
-// See "Creating a Singleton Instance" in the Cocoa Fundamentals Guide for more info
-
-+ (MyCLController *)sharedInstance {
- @synchronized(self) {
- if (sharedCLDelegate == nil) {
- [[self alloc] init]; // assignment not done here
- }
- }
- return sharedCLDelegate;
-}
-
-+ (id)allocWithZone:(NSZone *)zone {
- @synchronized(self) {
- if (sharedCLDelegate == nil) {
- sharedCLDelegate = [super allocWithZone:zone];
- return sharedCLDelegate; // assignment and return on first allocation
- }
- }
- return nil; // on subsequent allocation attempts return nil
-}
-
-- (id)copyWithZone:(NSZone *)zone
-{
- return self;
-}
-
-- (id)retain {
- return self;
-}
-
-- (unsigned)retainCount {
- return UINT_MAX; // denotes an object that cannot be released
-}
-
-- (void)release {
- //do nothing
-}
-
-- (id)autorelease {
- return self;
-}
-
-@end \ No newline at end of file