You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2012/03/16 19:14:49 UTC
[26/29] ios commit: rewrote Location class to use cordova-js unified
approach.
rewrote Location class to use cordova-js unified approach.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/7c7a8c49
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/7c7a8c49
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/7c7a8c49
Branch: refs/heads/master
Commit: 7c7a8c49659f6bafffa7020dc9bcee042eeae266
Parents: edd7467
Author: Fil Maj <ma...@gmail.com>
Authored: Tue Mar 6 16:14:11 2012 -0800
Committer: Fil Maj <ma...@gmail.com>
Committed: Fri Mar 16 10:56:49 2012 -0700
----------------------------------------------------------------------
CordovaLib/Classes/CDVLocation.h | 71 ++----
CordovaLib/Classes/CDVLocation.m | 337 ++++++---------------------
CordovaLib/Classes/CDVViewController.m | 9 +-
3 files changed, 92 insertions(+), 325 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/7c7a8c49/CordovaLib/Classes/CDVLocation.h
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVLocation.h b/CordovaLib/Classes/CDVLocation.h
index e18aef6..41e67bf 100755
--- a/CordovaLib/Classes/CDVLocation.h
+++ b/CordovaLib/Classes/CDVLocation.h
@@ -22,49 +22,35 @@
#import <CoreLocation/CoreLocation.h>
#import "CDVPlugin.h"
-enum CDVHeadingStatus {
- HEADINGSTOPPED = 0,
- HEADINGSTARTING,
- HEADINGRUNNING,
- HEADINGERROR
-};
-typedef NSUInteger CDVHeadingStatus;
-
-// simple object to keep track of heading information
-@interface CDVHeadingData : NSObject {
- CDVHeadingStatus headingStatus;
- BOOL headingRepeats;
- CLHeading* headingInfo;
- NSMutableArray* headingCallbacks;
- NSString* headingFilter;
-
-}
-
-@property (nonatomic, assign) CDVHeadingStatus headingStatus;
-@property (nonatomic, assign) BOOL headingRepeats;
-@property (nonatomic, retain) CLHeading* headingInfo;
-@property (nonatomic, retain) NSMutableArray* headingCallbacks;
-@property (nonatomic, retain) NSString* headingFilter;
-
-@end
-
@interface CDVLocation : CDVPlugin <CLLocationManagerDelegate> {
-
- @private BOOL __locationStarted;
- CDVHeadingData* headingData;
+ @private BOOL __locationStarted;
+ @private NSString *callbackId;
+ double timestamp;
+ double latitude;
+ double longitude;
+ double altitude;
+ double velocity;
+ double heading;
+ double accuracy;
+ double altitudeAccuracy;
}
@property (nonatomic, retain) CLLocationManager *locationManager;
-@property (nonatomic, retain) CDVHeadingData* headingData;
-
-
-- (BOOL) hasHeadingSupport;
-
-- (void)startLocation:(NSMutableArray*)arguments
+@property double timestamp;
+@property double latitude;
+@property double longitude;
+@property double altitude;
+@property double velocity;
+@property double heading;
+@property double accuracy;
+@property double altitudeAccuracy;
+
+- (void)getLocation:(NSMutableArray*)arguments
withDict:(NSMutableDictionary*)options;
-- (void)stopLocation:(NSMutableArray*)arguments
- withDict:(NSMutableDictionary*)options;
+- (void)startLocation;
+
+- (void)stopLocation;
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
@@ -75,17 +61,6 @@ typedef NSUInteger CDVHeadingStatus;
- (BOOL) isLocationServicesEnabled;
-- (void)getCurrentHeading:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
-- (void)returnHeadingInfo: (NSString*) callbackId keepCallback: (BOOL) bRetain;
-
-- (void)stopHeading:(NSMutableArray*)arguments
- withDict:(NSMutableDictionary*)options;
-- (void) startHeadingWithFilter: (CLLocationDegrees) filter;
-- (void)locationManager:(CLLocationManager *)manager
- didUpdateHeading:(CLHeading *)heading;
-
-- (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager;
-
@end
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/7c7a8c49/CordovaLib/Classes/CDVLocation.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVLocation.m b/CordovaLib/Classes/CDVLocation.m
index fb6cdb4..772c167 100755
--- a/CordovaLib/Classes/CDVLocation.m
+++ b/CordovaLib/Classes/CDVLocation.m
@@ -35,6 +35,7 @@
@interface NSError(JSONMethods)
- (NSString*) JSONRepresentation;
+- (NSDictionary*) DictionaryRepresentation;
@end
@@ -44,48 +45,12 @@
@end
-
-@interface CLHeading(JSONMethods)
-
-- (NSString*) JSONRepresentation;
-
-@end
-
-#pragma mark -
-#pragma mark CDVHeadingData
-
-@implementation CDVHeadingData
-
-@synthesize headingStatus, headingRepeats, headingInfo, headingCallbacks, headingFilter;
--(CDVHeadingData*) init
-{
- self = (CDVHeadingData*)[super init];
- if (self)
- {
- self.headingRepeats = NO;
- self.headingStatus = HEADINGSTOPPED;
- self.headingInfo = nil;
- self.headingCallbacks = nil;
- self.headingFilter = nil;
- }
- return self;
-}
--(void) dealloc
-{
- self.headingInfo = nil;
- self.headingCallbacks = nil;
- self.headingFilter = nil;
- [super dealloc];
-}
-
-@end
-
#pragma mark -
#pragma mark CDVLocation
@implementation CDVLocation
-@synthesize locationManager, headingData;
+@synthesize locationManager, latitude, longitude, heading, velocity, altitude, accuracy, altitudeAccuracy, timestamp;
- (CDVPlugin*) initWithWebView:(UIWebView*)theWebView
{
@@ -95,25 +60,18 @@
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self; // Tells the location manager to send updates to this object
__locationStarted = NO;
- self.headingData = nil;
+ self.timestamp = 0.0;
+ self.latitude = 0.0;
+ self.longitude = 0.0;
+ self.altitude = 0.0;
+ self.accuracy = 0.0;
+ self.heading = 0.0;
+ self.velocity = 0.0;
+ self.altitudeAccuracy = 0.0;
}
return self;
}
-- (BOOL) hasHeadingSupport
-{
- BOOL headingInstancePropertyAvailable = [self.locationManager respondsToSelector:@selector(headingAvailable)]; // iOS 3.x
- BOOL headingClassPropertyAvailable = [CLLocationManager respondsToSelector:@selector(headingAvailable)]; // iOS 4.x
-
- if (headingInstancePropertyAvailable) { // iOS 3.x
- return [(id)self.locationManager headingAvailable];
- } else if (headingClassPropertyAvailable) { // iOS 4.x
- return [CLLocationManager headingAvailable];
- } else { // iOS 2.x
- return NO;
- }
-}
-
- (BOOL) isAuthorized
{
BOOL authorizationStatusClassPropertyAvailable = [CLLocationManager respondsToSelector:@selector(authorizationStatus)]; // iOS 4.2+
@@ -146,28 +104,10 @@
}
}
-- (void) startLocation:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
+- (void) startLocation
{
if (![self isLocationServicesEnabled])
{
- BOOL forcePrompt = NO;
- // if forcePrompt is true iPhone will still show the "Location Services not active." Settings | Cancel prompt.
- if ([options objectForKey:kPGLocationForcePromptKey])
- {
- forcePrompt = [[options objectForKey:kPGLocationForcePromptKey] boolValue];
- }
-
- if (!forcePrompt)
- {
- NSError* error = [NSError errorWithDomain:kPGLocationErrorDomain code:1 userInfo:
- [NSDictionary dictionaryWithObject:@"Location services is not enabled" forKey:NSLocalizedDescriptionKey]];
- NSLog(@"%@", [error JSONRepresentation]);
-
- NSString* jsCallback = [NSString stringWithFormat:@"navigator.geolocation.setError(%@);", [error JSONRepresentation]];
- [super writeJavascript:jsCallback];
-
- return;
- }
}
if (![self isAuthorized])
{
@@ -177,12 +117,18 @@
code = [CLLocationManager authorizationStatus];
}
+ CDVPluginResult* result = nil;
+ NSString* jsString = nil;
+
NSError* error = [NSError errorWithDomain:NSCocoaErrorDomain code:code userInfo:
[NSDictionary dictionaryWithObject:@"App is not authorized for Location Services" forKey:NSLocalizedDescriptionKey]];
+
NSLog(@"%@", [error JSONRepresentation]);
+
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ILLEGAL_ACCESS_EXCEPTION messageAsDictionary:[error DictionaryRepresentation]];
+ jsString = [result toErrorCallbackString:callbackId];
- NSString* jsCallback = [NSString stringWithFormat:@"navigator.geolocation.setError(%@);", [error JSONRepresentation]];
- [super writeJavascript:jsCallback];
+ [super writeJavascript:jsString];
return;
}
@@ -193,7 +139,8 @@
[self.locationManager stopUpdatingLocation];
[self.locationManager startUpdatingLocation];
__locationStarted = YES;
-
+ // TODO: what should we do about all this stuff?
+ /*
if ([options objectForKey:kPGLocationDistanceFilterKey])
{
CLLocationDistance distanceFilter = [(NSString *)[options objectForKey:kPGLocationDistanceFilterKey] doubleValue];
@@ -223,9 +170,10 @@
self.locationManager.desiredAccuracy = desiredAccuracy;
}
+ */
}
-- (void) stopLocation:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
+- (void) stopLocation
{
if (__locationStarted)
{
@@ -238,210 +186,52 @@
}
}
-- (void) locationManager:(CLLocationManager *)manager
- didUpdateToLocation:(CLLocation *)newLocation
- fromLocation:(CLLocation *)oldLocation
-{
-
- NSString* jsCallback = [NSString stringWithFormat:@"navigator.geolocation.setLocation(%@);", [newLocation JSONRepresentation]];
- [super writeJavascript:jsCallback];
-}
-// called to get the current heading
-// Will call location manager to startUpdatingHeading if necessary
-
-- (void)getCurrentHeading:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
-{
- NSString* callbackId = [arguments objectAtIndex:0];
- NSNumber* repeats = [options valueForKey:@"repeats"]; // indicates this call will be repeated at regular intervals
-
- if ([self hasHeadingSupport] == NO)
- {
- CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageToErrorObject:20];
- [super writeJavascript:[result toErrorCallbackString:callbackId]];
- } else {
- // heading retrieval does is not affected by disabling locationServices and authorization of app for location services
- if (!self.headingData) {
- self.headingData = [[[CDVHeadingData alloc] init] autorelease];
- }
- CDVHeadingData* hData = self.headingData;
-
- if (repeats != nil) {
- hData.headingRepeats = YES;
- }
- if (!hData.headingCallbacks) {
- hData.headingCallbacks = [NSMutableArray arrayWithCapacity:1];
- }
- // add the callbackId into the array so we can call back when get data
- [hData.headingCallbacks addObject:callbackId];
-
- if (hData.headingStatus != HEADINGRUNNING && hData.headingStatus != HEADINGERROR) {
- // Tell the location manager to start notifying us of heading updates
- [self startHeadingWithFilter: 0.2];
- }
- else {
- [self returnHeadingInfo: callbackId keepCallback:NO];
- }
- }
-
-
-}
-// called to request heading updates when heading changes by a certain amount (filter)
-- (void)watchHeadingFilter:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
-{
- NSString* callbackId = [arguments objectAtIndex:0];
- NSNumber* filter = [options valueForKey:@"filter"];
- CDVHeadingData* hData = self.headingData;
- if ([self hasHeadingSupport] == NO) {
- CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageToErrorObject:20];
- [super writeJavascript:[result toErrorCallbackString:callbackId]];
- } else {
- if (!hData) {
- self.headingData = [[[CDVHeadingData alloc] init] autorelease];
- hData = self.headingData;
- }
- if (hData.headingStatus != HEADINGRUNNING) {
- // Tell the location manager to start notifying us of heading updates
- [self startHeadingWithFilter: [filter doubleValue]];
- } else {
- // if already running check to see if due to existing watch filter
- if (hData.headingFilter && ![hData.headingFilter isEqualToString:callbackId]){
- // new watch filter being specified
- // send heading data one last time to clear old successCallback
- [self returnHeadingInfo:hData.headingFilter keepCallback: NO];
- }
-
- }
- // save the new filter callback and update the headingFilter setting
- hData.headingFilter = callbackId;
- // check if need to stop and restart in order to change value???
- self.locationManager.headingFilter = [filter doubleValue];
- }
-}
-- (void)returnHeadingInfo: (NSString*) callbackId keepCallback: (BOOL) bRetain
+- (void) getLocation:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)options
{
CDVPluginResult* result = nil;
NSString* jsString = nil;
- CDVHeadingData* hData = self.headingData;
+ callbackId = [arguments objectAtIndex:0];
- if (hData && hData.headingStatus == HEADINGERROR) {
- // return error
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageToErrorObject:0];
- jsString = [result toErrorCallbackString:callbackId];
- } else if (hData && hData.headingStatus == HEADINGRUNNING && hData.headingInfo) {
- // if there is heading info, return it
- CLHeading* hInfo = hData.headingInfo;
- NSMutableDictionary* returnInfo = [NSMutableDictionary dictionaryWithCapacity:4];
- NSNumber* timestamp = [NSNumber numberWithDouble:([hInfo.timestamp timeIntervalSince1970]*1000)];
- [returnInfo setObject:timestamp forKey:@"timestamp"];
- [returnInfo setObject:[NSNumber numberWithDouble: hInfo.magneticHeading] forKey:@"magneticHeading"];
- id trueHeading = __locationStarted ? (id)[NSNumber numberWithDouble:hInfo.trueHeading]:(id)[NSNull null];
- [returnInfo setObject:trueHeading forKey:@"trueHeading"];
- [returnInfo setObject:[NSNumber numberWithDouble: hInfo.headingAccuracy] forKey:@"headingAccuracy"];
-
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: returnInfo];
- [result setKeepCallbackAsBool:bRetain];
-
- jsString = [result toSuccessCallbackString:callbackId];
- }
- if (jsString) {
- [super writeJavascript:jsString];
+ if (!__locationStarted)
+ {
+ [self startLocation];
}
-
-}
-
-- (void) stopHeading:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
-{
- CDVHeadingData* hData = self.headingData;
- if (hData && hData.headingStatus != HEADINGSTOPPED)
- {
- if (hData.headingFilter) {
- // callback one last time to clear callback
- [self returnHeadingInfo:hData.headingFilter keepCallback:NO];
- hData.headingFilter = nil;
- }
- [self.locationManager stopUpdatingHeading];
- self.headingData = nil;
- }
-}
-
-
-// helper method to check the orientation and start updating headings
-- (void) startHeadingWithFilter: (CLLocationDegrees) filter
-{
- if ([self.locationManager respondsToSelector: @selector(headingOrientation)]) {
- UIDeviceOrientation currentOrientation = [[UIDevice currentDevice] orientation];
- if (currentOrientation != UIDeviceOrientationUnknown) {
- CDVViewController* pgViewController = (CDVViewController*)self.viewController;
-
- if ([pgViewController.supportedOrientations containsObject:
- [NSNumber numberWithInt:currentOrientation]]) {
-
- self.locationManager.headingOrientation = (CLDeviceOrientation)currentOrientation;
- // FYI UIDeviceOrientation and CLDeviceOrientation enums are currently the same
- }
- }
- }
- self.locationManager.headingFilter = filter;
- [self.locationManager startUpdatingHeading];
- self.headingData.headingStatus = HEADINGSTARTING;
-}
-- (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager
-{
- return YES;
+ NSMutableDictionary *currentLocation = [NSMutableDictionary dictionaryWithCapacity:8];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.timestamp] forKey:@"timestamp"];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.latitude] forKey:@"latitude"];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.longitude] forKey:@"longitude"];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.altitude] forKey:@"altitude"];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.heading] forKey:@"heading"];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.accuracy] forKey:@"accuracy"];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.velocity] forKey:@"velocity"];
+ [currentLocation setValue:[NSNumber numberWithDouble:self.altitudeAccuracy] forKey:@"altitudeAccuracy"];
+
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:currentLocation];
+ jsString = [result toSuccessCallbackString:callbackId];
+ [self writeJavascript:jsString];
}
- (void) locationManager:(CLLocationManager *)manager
- didUpdateHeading:(CLHeading *)heading
+ didUpdateToLocation:(CLLocation *)newLocation
+ fromLocation:(CLLocation *)oldLocation
{
- CDVHeadingData* hData = self.headingData;
- // save the data for next call into getHeadingData
- hData.headingInfo = heading;
-
- if (hData.headingStatus == HEADINGSTARTING) {
- hData.headingStatus = HEADINGRUNNING; // so returnHeading info will work
- //this is the first update
- for (NSString* callbackId in hData.headingCallbacks) {
- [self returnHeadingInfo:callbackId keepCallback:NO];
- }
- [hData.headingCallbacks removeAllObjects];
- if (!hData.headingRepeats && !hData.headingFilter) {
- [self stopHeading:nil withDict:nil];
- }
- }
- if (hData.headingFilter) {
- [self returnHeadingInfo: hData.headingFilter keepCallback:YES];
- }
- hData.headingStatus = HEADINGRUNNING; // to clear any error
-
+ self.timestamp = [newLocation.timestamp timeIntervalSince1970] * 1000.0;
+ self.latitude = newLocation.coordinate.latitude;
+ self.longitude = newLocation.coordinate.longitude;
+ self.altitude = newLocation.altitude;
+ self.heading = newLocation.course;
+ self.velocity = newLocation.speed;
+ self.accuracy = newLocation.horizontalAccuracy;
+ self.altitudeAccuracy = newLocation.verticalAccuracy;
}
+
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"locationManager::didFailWithError %@", [error localizedFailureReason]);
- NSString* jsCallback = @"";
- // Compass Error
- if ([error code] == kCLErrorHeadingFailure)
- {
- CDVHeadingData* hData = self.headingData;
- if (hData) {
- if (hData.headingStatus == HEADINGSTARTING) {
- // heading error during startup - report error
- for (NSString* callbackId in hData.headingCallbacks) {
- CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageToErrorObject:0];
- [super writeJavascript: [result toErrorCallbackString:callbackId]];
- }
- [hData.headingCallbacks removeAllObjects];
- } // else for frequency watches next call to getCurrentHeading will report error
- else if (hData.headingFilter) {
- CDVPluginResult* resultFilter = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageToErrorObject:0];
- [super writeJavascript: [resultFilter toErrorCallbackString:hData.headingFilter]];
- }
- hData.headingStatus = HEADINGERROR;
- }
- }
// Location Error
- else
+ if ([error code] != kCLErrorHeadingFailure)
{
/*
W3C PositionError
@@ -454,21 +244,18 @@
if (error.code > kCLErrorNetwork) {
error = [NSError errorWithDomain:error.domain code:kCLErrorLocationUnknown userInfo:error.userInfo];
}
-
- jsCallback = [NSString stringWithFormat:@"navigator.geolocation.setError(%@);", [error JSONRepresentation]];
+ CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[error DictionaryRepresentation]];
+ NSString* jsString = [result toErrorCallbackString:callbackId];
+ [self writeJavascript:jsString];
}
-
- [super writeJavascript:jsCallback];
- [self.locationManager stopUpdatingLocation];
- __locationStarted = NO;
+ [self stopLocation];
}
- (void) dealloc
{
self.locationManager.delegate = nil;
self.locationManager = nil;
- self.headingData = nil;
[super dealloc];
}
@@ -483,7 +270,7 @@
{
return [NSString stringWithFormat:
@"{ timestamp: %.00f, \
- coords: { latitude: %f, longitude: %f, altitude: %.02f, heading: %.02f, speed: %.02f, accuracy: %.02f, altitudeAccuracy: %.02f } \
+ latitude: %f, longitude: %f, altitude: %.02f, heading: %.02f, velocity: %.02f, accuracy: %.02f, altitudeAccuracy: %.02f \
}",
[self.timestamp timeIntervalSince1970] * 1000.0,
self.coordinate.latitude,
@@ -511,5 +298,13 @@
[self localizedDescription]
];
}
+- (NSDictionary*) DictionaryRepresentation
+{
+ NSMutableDictionary *error = [NSMutableDictionary dictionaryWithCapacity:2];
+ [error setValue:[NSNumber numberWithInteger:self.code] forKey:@"code"];
+ [error setValue:[self localizedDescription] forKey:@"message"];
+
+ return error;
+}
@end
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/7c7a8c49/CordovaLib/Classes/CDVViewController.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVViewController.m b/CordovaLib/Classes/CDVViewController.m
index 82bcd30..c5c0153 100644
--- a/CordovaLib/Classes/CDVViewController.m
+++ b/CordovaLib/Classes/CDVViewController.m
@@ -166,8 +166,7 @@
*/
if ([enableLocation boolValue]) {
- // TODO: change this package name
- [[self.commandDelegate getCommandInstance:@"org.apache.cordova.geolocation"] startLocation:nil withDict:nil];
+ [[self.commandDelegate getCommandInstance:@"Geolocation"] startLocation];
}
/*
@@ -207,6 +206,7 @@
}
self.commandDelegate = self;
+
}
- (NSArray*) parseInterfaceOrientations:(NSArray*)orientations
@@ -353,7 +353,6 @@
*/
- (void) webViewDidStartLoad:(UIWebView*)theWebView
{
-
}
/**
@@ -817,7 +816,7 @@ BOOL gSplashScreenShown = NO;
[devProps setObject:[device systemVersion] forKey:@"version"];
[devProps setObject:[device uniqueIdentifier] forKey:@"uuid"];
[devProps setObject:[device name] forKey:@"name"];
- [devProps setObject:[[self class] cordovaVersion ] forKey:@"gap"];
+ //[devProps setObject:[[self class] cordovaVersion ] forKey:@"gap"];
NSDictionary *devReturn = [NSDictionary dictionaryWithDictionary:devProps];
return devReturn;
@@ -880,7 +879,6 @@ static NSString* cdvVersion;
cdvVersion = [first_line retain];
}
#endif
-
return cdvVersion;
}
@@ -893,7 +891,6 @@ static NSString* cdvVersion;
*/
- (void) onAppWillTerminate:(NSNotification*)notification
{
- NSLog(@"applicationWillTerminate");
// empty the tmp directory
NSFileManager* fileMgr = [[NSFileManager alloc] init];