You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2012/02/17 02:38:50 UTC
[25/27] Rename PhoneGap to Cordova.
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/PhoneGapLibTests/PGWhitelistTests.m
----------------------------------------------------------------------
diff --git a/PhoneGapLib/PhoneGapLibTests/PGWhitelistTests.m b/PhoneGapLib/PhoneGapLibTests/PGWhitelistTests.m
deleted file mode 100644
index 90566ba..0000000
--- a/PhoneGapLib/PhoneGapLibTests/PGWhitelistTests.m
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import "PGWhitelistTests.h"
-#import "PGWhitelist.h"
-
-@implementation PGWhitelistTests
-
-- (void)setUp
-{
- [super setUp];
-
- // setup code here
-}
-
-- (void)tearDown
-{
- // Tear-down code here.
-
- [super tearDown];
-}
-
-- (void) testAllowedSchemes
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"*.phonegap.com",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertTrue([whitelist schemeIsAllowed:@"http"], nil);
- STAssertTrue([whitelist schemeIsAllowed:@"https"], nil);
- STAssertTrue([whitelist schemeIsAllowed:@"ftp"], nil);
- STAssertTrue([whitelist schemeIsAllowed:@"ftps"], nil);
- STAssertFalse([whitelist schemeIsAllowed:@"gopher"], nil);
-
- [whitelist release];
-
-}
-
-- (void) testSubdomainWildcard
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"*.phonegap.com",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://build.phonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://sub1.sub0.build.phonegap.com"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.com.ca"]], nil);
-
- [whitelist release];
-}
-
-- (void) testWildcardInTLD
-{
- // NOTE: if the user chooses to do this (a wildcard in the TLD, not a wildcard as the TLD), we allow it because we assume they know what they are doing! We don't replace it with known TLDs
- // This might be applicable for custom TLDs on a local network DNS
-
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"phonegap.c*m",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.corporateroom"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.foo"]], nil);
-
- [whitelist release];
-}
-
-- (void) testTLDWildcard
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"phonegap.*",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- NSString* hostname = @"phonegap";
-
- NSArray* knownTLDs = [NSArray arrayWithObjects:
- @"aero", @"asia", @"arpa", @"biz", @"cat",
- @"com", @"coop", @"edu", @"gov", @"info",
- @"int", @"jobs", @"mil", @"mobi", @"museum",
- @"name", @"net", @"org", @"pro", @"tel",
- @"travel", @"xxx",
- nil];
-
- // 26*26 combos
- NSMutableArray* twoCharCountryCodes = [NSMutableArray arrayWithCapacity:(26*26)];
- for (char c0 = 'a'; c0 <= 'z'; ++c0)
- {
- for (char c1 = 'a'; c1 <= 'z'; ++c1)
- {
- [twoCharCountryCodes addObject:[NSString stringWithFormat:@"%c%c", c0, c1]];
- }
- }
-
- NSMutableArray* shouldPass = [NSMutableArray arrayWithCapacity:[knownTLDs count]+[twoCharCountryCodes count]];
-
- NSEnumerator* knownTLDEnumerator = [knownTLDs objectEnumerator];
- NSString* tld = nil;
-
- while (tld = [knownTLDEnumerator nextObject])
- {
- [shouldPass addObject:[NSURL URLWithString:[NSString stringWithFormat:@"http://%@.%@", hostname, tld]]];
- }
-
- NSEnumerator* twoCharCountryCodesEnumerator = [twoCharCountryCodes objectEnumerator];
- NSString* cc = nil;
-
- while (cc = [twoCharCountryCodesEnumerator nextObject])
- {
- [shouldPass addObject:[NSURL URLWithString:[NSString stringWithFormat:@"http://%@.%@", hostname, cc]]];
- }
-
- NSEnumerator* shouldPassEnumerator = [shouldPass objectEnumerator];
- NSURL* url = nil;
-
- while (url = [shouldPassEnumerator nextObject])
- {
- STAssertTrue([whitelist URLIsAllowed:url], @"Url tested :%@", [url description]);
- }
-
- STAssertFalse(([whitelist URLIsAllowed:[NSURL URLWithString:[NSString stringWithFormat:@"http://%@.%@", hostname, @"faketld"]]]), nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://unknownhostname.faketld"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://unknownhostname.com"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://www.phonegap.com"]], nil);
-
- [whitelist release];
-}
-
-- (void) testCatchallWildcardOnly
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"*",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://build.phonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://MyDangerousSite.org"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.com.SuspiciousSite.com"]], nil);
-
- [whitelist release];
-}
-
-- (void) testWildcardInHostname
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"www.*phone*gap.com",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://www.phonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://www.phoneMACgap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://www.MACphonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://www.MACphoneMACgap.com"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.com"]], nil);
-
- [whitelist release];
-}
-
-- (void) testExactMatch
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"www.phonegap.com",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://www.phonegap.com"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://build.phonegap.com"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.com"]], nil);
-
- [whitelist release];
-}
-
-- (void) testWildcardMix
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"*.phone*gap.*",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://www.phonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phonegap.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phoneMACgap.ca"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://phoneMACgap.museum"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://blahMACgap.museum"]], nil);
-
- [whitelist release];
-}
-
-- (void) testIpExactMatch
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"192.168.1.1",
- @"192.168.2.1",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://mydomain.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.1.1"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.2.1"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.3.1"]], nil);
-
- [whitelist release];
-}
-
-- (void) testIpWildcardMatch
-{
- NSArray* allowedHosts = [NSArray arrayWithObjects:
- @"192.168.1.*",
- @"192.168.2.*",
- nil];
-
- PGWhitelist* whitelist = [[PGWhitelist alloc] initWithArray:allowedHosts];
-
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://mydomain.com"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.1.1"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.1.2"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.2.1"]], nil);
- STAssertTrue([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.2.2"]], nil);
- STAssertFalse([whitelist URLIsAllowed:[NSURL URLWithString:@"http://192.168.3.1"]], nil);
-
- [whitelist release];
-}
-
-
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Info.plist
----------------------------------------------------------------------
diff --git a/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Info.plist b/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Info.plist
deleted file mode 100644
index aaaf73c..0000000
--- a/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Info.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>en</string>
- <key>CFBundleExecutable</key>
- <string>${EXECUTABLE_NAME}</string>
- <key>CFBundleIdentifier</key>
- <string>com.phonegap.${PRODUCT_NAME:rfc1034identifier}</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundlePackageType</key>
- <string>BNDL</string>
- <key>CFBundleShortVersionString</key>
- <string>1.0</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>1</string>
-</dict>
-</plist>
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Prefix.pch
----------------------------------------------------------------------
diff --git a/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Prefix.pch b/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Prefix.pch
deleted file mode 100644
index 827cc98..0000000
--- a/PhoneGapLib/PhoneGapLibTests/PhoneGapLibTests-Prefix.pch
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-//
-// Prefix header for all source files of the 'PhoneGapLibTests' target in the 'PhoneGapLibTests' project
-//
-
-#ifdef __OBJC__
- #import <UIKit/UIKit.h>
-#endif
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.h
----------------------------------------------------------------------
diff --git a/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.h b/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.h
deleted file mode 100644
index c975963..0000000
--- a/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <SenTestingKit/SenTestingKit.h>
-
-
-@interface PluginResultJSONSerializationTests : SenTestCase {
-@private
-
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.m
----------------------------------------------------------------------
diff --git a/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.m b/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.m
deleted file mode 100644
index 5fabedb..0000000
--- a/PhoneGapLib/PhoneGapLibTests/PluginResultJSONSerializationTests.m
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import "PluginResultJSONSerializationTests.h"
-#import "PluginResult.h"
-#import "JSONKit.h"
-
-@implementation PluginResultJSONSerializationTests
-
-- (void)testSerializingMessageAsInt {
- PluginResult *result = [PluginResult resultWithStatus:PGCommandStatus_OK messageAsInt:5];
- NSDictionary *dic = [[result toJSONString] objectFromJSONString];
- NSNumber *message = [dic objectForKey:@"message"];
- STAssertTrue([[NSNumber numberWithInt:5] isEqual:message], nil);
-}
-
-- (void)testSerializingMessageAsDouble {
- PluginResult *result = [PluginResult resultWithStatus:PGCommandStatus_OK messageAsDouble:5.5];
- NSDictionary *dic = [[result toJSONString] objectFromJSONString];
- NSNumber *message = [dic objectForKey:@"message"];
- STAssertTrue([[NSNumber numberWithDouble:5.5] isEqual:message], nil);
-}
-
-- (void)testSerializingMessageAsArray {
- NSArray *testValues = [NSArray arrayWithObjects:
- [NSNull null],
- @"string",
- [NSNumber numberWithInt:5],
- [NSNumber numberWithDouble:5.5],
- [NSNumber numberWithBool:true],
- nil];
-
- PluginResult *result = [PluginResult resultWithStatus:PGCommandStatus_OK messageAsArray:testValues];
- NSDictionary *dic = [[result toJSONString] objectFromJSONString];
- NSArray *message = [dic objectForKey:@"message"];
-
- STAssertTrue([message isKindOfClass:[NSArray class]], nil);
- STAssertTrue([testValues count] == [message count], nil);
-
- for (NSInteger i = 0; i < [testValues count]; i++) {
- STAssertTrue([[testValues objectAtIndex:i] isEqual:[message objectAtIndex:i]], nil);
- }
-}
-
-- (void) __testDictionary:(NSDictionary*)dictA withDictionary:(NSDictionary*)dictB
-{
- STAssertTrue([dictA isKindOfClass:[NSDictionary class]], nil);
- STAssertTrue([dictB isKindOfClass:[NSDictionary class]], nil);
-
- STAssertTrue([[dictA allKeys ]count] == [[dictB allKeys] count], nil);
-
- for (NSInteger i = 0; i < [dictA count]; i++) {
- id keyA = [[dictA allKeys] objectAtIndex:i];
- id objA = [dictA objectForKey:keyA];
- id objB = [dictB objectForKey:keyA];
-
- STAssertTrue([[dictB allKeys] containsObject:keyA], nil); // key exists
- if ([objA isKindOfClass:[NSDictionary class]]) {
- [self __testDictionary:objA withDictionary:objB];
- } else {
- STAssertTrue([objA isEqual:objB], nil); // key's value equality
- }
- }
-}
-
-- (void) testSerializingMessageAsDictionary
-{
- NSMutableDictionary *testValues = [NSMutableDictionary dictionaryWithObjectsAndKeys:
- [NSNull null], @"nullItem",
- @"string", @"stringItem",
- [NSNumber numberWithInt:5], @"intItem",
- [NSNumber numberWithDouble:5.5], @"doubleItem",
- [NSNumber numberWithBool:true], @"boolItem",
- nil];
-
- NSDictionary *nestedDict = [[testValues copy] autorelease];
- [testValues setValue:nestedDict forKey:@"nestedDict"];
-
- PluginResult *result = [PluginResult resultWithStatus:PGCommandStatus_OK messageAsDictionary:testValues];
- NSDictionary *dic = [[result toJSONString] objectFromJSONString];
- NSDictionary *message = [dic objectForKey:@"message"];
-
- [self __testDictionary:testValues withDictionary:message];
-}
-
-- (void)testSerializingMessageAsErrorCode
-{
- NSMutableDictionary *testValues = [NSMutableDictionary dictionaryWithObjectsAndKeys:
- [NSNumber numberWithInt:1], @"code",
- nil];
-
- PluginResult *result = [PluginResult resultWithStatus:PGCommandStatus_OK messageToErrorObject:1];
- NSDictionary *dic = [[result toJSONString] objectFromJSONString];
- NSDictionary *message = [dic objectForKey:@"message"];
-
- [self __testDictionary:testValues withDictionary:message];
-}
-
-- (void)testSerializingMessageAsStringContainingQuotes {
- NSString *quotedString = @"\"quoted\"";
- PluginResult *result = [PluginResult resultWithStatus:PGCommandStatus_OK messageAsString:quotedString];
- NSDictionary *dic = [[result toJSONString] objectFromJSONString];
- NSString *message = [dic objectForKey:@"message"];
- STAssertTrue([quotedString isEqual:message], nil);
-}
-
-- (void)testSerializingMessageAsStringThatIsNil {
- NSString *nilString = nil;
- PluginResult *result = [PluginResult resultWithStatus:PGCommandStatus_OK messageAsString:nilString];
- NSDictionary *dic = [[result toJSONString] objectFromJSONString];
- NSString *message = [dic objectForKey:@"message"];
- STAssertTrue([[NSNull null] isEqual:message], nil);
-}
-
-@end
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/PhoneGapLibTests/en.lproj/InfoPlist.strings
----------------------------------------------------------------------
diff --git a/PhoneGapLib/PhoneGapLibTests/en.lproj/InfoPlist.strings b/PhoneGapLib/PhoneGapLibTests/en.lproj/InfoPlist.strings
deleted file mode 100644
index 01d5c8c..0000000
--- a/PhoneGapLib/PhoneGapLibTests/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-/* Localized versions of Info.plist keys */
-
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/PhoneGapLib_Prefix.pch
----------------------------------------------------------------------
diff --git a/PhoneGapLib/PhoneGapLib_Prefix.pch b/PhoneGapLib/PhoneGapLib_Prefix.pch
deleted file mode 100644
index bfb7394..0000000
--- a/PhoneGapLib/PhoneGapLib_Prefix.pch
+++ /dev/null
@@ -1,7 +0,0 @@
-//
-// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
-//
-
-#ifdef __OBJC__
- #import <Foundation/Foundation.h>
-#endif
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/VERSION
----------------------------------------------------------------------
diff --git a/PhoneGapLib/VERSION b/PhoneGapLib/VERSION
deleted file mode 100644
index 13175fd..0000000
--- a/PhoneGapLib/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-1.4.1
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/acceleration.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/acceleration.js b/PhoneGapLib/javascripts/core/acceleration.js
deleted file mode 100644
index 0399df0..0000000
--- a/PhoneGapLib/javascripts/core/acceleration.js
+++ /dev/null
@@ -1,42 +0,0 @@
-if (!PhoneGap.hasResource("acceleration")) {
- PhoneGap.addResource("acceleration");
-
-
-/**
- * This class contains acceleration information
- * @constructor
- * @param {Number} x The force applied by the device in the x-axis.
- * @param {Number} y The force applied by the device in the y-axis.
- * @param {Number} z The force applied by the device in the z-axis.
- */
-Acceleration = function(x, y, z) {
- /**
- * The force applied by the device in the x-axis.
- */
- this.x = x;
- /**
- * The force applied by the device in the y-axis.
- */
- this.y = y;
- /**
- * The force applied by the device in the z-axis.
- */
- this.z = z;
- /**
- * The time that the acceleration was obtained.
- */
- this.timestamp = new Date().getTime();
-}
-
-/**
- * This class specifies the options for requesting acceleration data.
- * @constructor
- */
-AccelerationOptions = function() {
- /**
- * The timeout after which if acceleration data cannot be obtained the errorCallback
- * is called.
- */
- this.timeout = 10000;
-}
-};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/accelerometer.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/accelerometer.js b/PhoneGapLib/javascripts/core/accelerometer.js
deleted file mode 100644
index 570ce8d..0000000
--- a/PhoneGapLib/javascripts/core/accelerometer.js
+++ /dev/null
@@ -1,160 +0,0 @@
-if (!PhoneGap.hasResource("accelerometer")) {
- PhoneGap.addResource("accelerometer");
-
-/**
- * This class provides access to device accelerometer data.
- * @constructor
- */
-Accelerometer = function()
-{
- /**
- * The last known acceleration.
- */
- this.lastAcceleration = new Acceleration(0,0,0);
-}
-
-/**
- * Asynchronously aquires the current acceleration.
- * @param {Function} successCallback The function to call when the acceleration
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the acceleration data.
- * @param {AccelerationOptions} options The options for getting the accelerometer data
- * such as timeout.
- */
-Accelerometer.prototype.getCurrentAcceleration = function(successCallback, errorCallback, options) {
- // If the acceleration is available then call success
- // If the acceleration is not available then call error
-
- // Created for iPhone, Iphone passes back _accel obj litteral
- if (typeof successCallback == "function") {
- successCallback(this.lastAcceleration);
- }
-};
-
-// private callback called from Obj-C by name
-Accelerometer.prototype._onAccelUpdate = function(x,y,z)
-{
- this.lastAcceleration = new Acceleration(x,y,z);
-};
-
-/**
- * Asynchronously aquires the acceleration repeatedly at a given interval.
- * @param {Function} successCallback The function to call each time the acceleration
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the acceleration data.
- * @param {AccelerationOptions} options The options for getting the accelerometer data
- * such as timeout.
- */
-
-Accelerometer.prototype.watchAcceleration = function(successCallback, errorCallback, options) {
- //this.getCurrentAcceleration(successCallback, errorCallback, options);
- // TODO: add the interval id to a list so we can clear all watches
- var frequency = (options != undefined && options.frequency != undefined) ? options.frequency : 10000;
- var updatedOptions = {
- desiredFrequency:frequency
- }
- PhoneGap.exec(null, null, "com.phonegap.accelerometer", "start", [options]);
-
- return setInterval(function() {
- navigator.accelerometer.getCurrentAcceleration(successCallback, errorCallback, options);
- }, frequency);
-};
-
-/**
- * Clears the specified accelerometer watch.
- * @param {String} watchId The ID of the watch returned from #watchAcceleration.
- */
-Accelerometer.prototype.clearWatch = function(watchId) {
- PhoneGap.exec(null, null, "com.phonegap.accelerometer", "stop", []);
- clearInterval(watchId);
-};
-
-Accelerometer.install = function()
-{
- if (typeof navigator.accelerometer == "undefined") {
- navigator.accelerometer = new Accelerometer();
- }
-};
-
-Accelerometer.installDeviceMotionHandler = function()
-{
- if (!(window.DeviceMotionEvent == undefined)) {
- // supported natively, so we don't have to add support
- return;
- }
-
- var self = this;
- var devicemotionEvent = 'devicemotion';
- self.deviceMotionWatchId = null;
- self.deviceMotionListenerCount = 0;
- self.deviceMotionLastEventTimestamp = 0;
-
- // backup original `window.addEventListener`, `window.removeEventListener`
- var _addEventListener = window.addEventListener;
- var _removeEventListener = window.removeEventListener;
-
- var windowDispatchAvailable = !(window.dispatchEvent === undefined); // undefined in iOS 3.x
-
- var accelWin = function(acceleration) {
- var evt = document.createEvent('Events');
- evt.initEvent(devicemotionEvent);
-
- evt.acceleration = null; // not all devices have gyroscope, don't care for now if we actually have it.
- evt.rotationRate = null; // not all devices have gyroscope, don't care for now if we actually have it:
- evt.accelerationIncludingGravity = acceleration; // accelerometer, all iOS devices have it
-
- var currentTime = new Date().getTime();
- evt.interval = (self.deviceMotionLastEventTimestamp == 0) ? 0 : (currentTime - self.deviceMotionLastEventTimestamp);
- self.deviceMotionLastEventTimestamp = currentTime;
-
- if (windowDispatchAvailable) {
- window.dispatchEvent(evt);
- } else {
- document.dispatchEvent(evt);
- }
- };
-
- var accelFail = function() {
-
- };
-
- // override `window.addEventListener`
- window.addEventListener = function() {
- if (arguments[0] === devicemotionEvent) {
- ++(self.deviceMotionListenerCount);
- if (self.deviceMotionListenerCount == 1) { // start
- self.deviceMotionWatchId = navigator.accelerometer.watchAcceleration(accelWin, accelFail, { frequency:500});
- }
- }
-
- if (!windowDispatchAvailable) {
- return document.addEventListener.apply(this, arguments);
- } else {
- return _addEventListener.apply(this, arguments);
- }
- };
-
- // override `window.removeEventListener'
- window.removeEventListener = function() {
- if (arguments[0] === devicemotionEvent) {
- --(self.deviceMotionListenerCount);
- if (self.deviceMotionListenerCount == 0) { // stop
- navigator.accelerometer.clearWatch(self.deviceMotionWatchId);
- }
- }
-
- if (!windowDispatchAvailable) {
- return document.removeEventListener.apply(this, arguments);
- } else {
- return _removeEventListener.apply(this, arguments);
- }
- };
-};
-
-
-PhoneGap.addConstructor(Accelerometer.install);
-PhoneGap.addConstructor(Accelerometer.installDeviceMotionHandler);
-
-};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/battery.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/battery.js b/PhoneGapLib/javascripts/core/battery.js
deleted file mode 100644
index 05bc9f4..0000000
--- a/PhoneGapLib/javascripts/core/battery.js
+++ /dev/null
@@ -1,123 +0,0 @@
-
-if (!PhoneGap.hasResource("battery")) {
-PhoneGap.addResource("battery");
-
-/**
- * This class contains information about the current battery status.
- * @constructor
- */
-var Battery = function() {
- this._level = null;
- this._isPlugged = null;
- this._batteryListener = [];
- this._lowListener = [];
- this._criticalListener = [];
-};
-
-/**
- * Registers as an event producer for battery events.
- *
- * @param {Object} eventType
- * @param {Object} handler
- * @param {Object} add
- */
-Battery.prototype.eventHandler = function(eventType, handler, add) {
- var me = navigator.battery;
- if (add) {
- // If there are no current registered event listeners start the battery listener on native side.
- if (me._batteryListener.length === 0 && me._lowListener.length === 0 && me._criticalListener.length === 0) {
- PhoneGap.exec(me._status, me._error, "com.phonegap.battery", "start", []);
- }
-
- // Register the event listener in the proper array
- if (eventType === "batterystatus") {
- var pos = me._batteryListener.indexOf(handler);
- if (pos === -1) {
- me._batteryListener.push(handler);
- }
- } else if (eventType === "batterylow") {
- var pos = me._lowListener.indexOf(handler);
- if (pos === -1) {
- me._lowListener.push(handler);
- }
- } else if (eventType === "batterycritical") {
- var pos = me._criticalListener.indexOf(handler);
- if (pos === -1) {
- me._criticalListener.push(handler);
- }
- }
- } else {
- // Remove the event listener from the proper array
- if (eventType === "batterystatus") {
- var pos = me._batteryListener.indexOf(handler);
- if (pos > -1) {
- me._batteryListener.splice(pos, 1);
- }
- } else if (eventType === "batterylow") {
- var pos = me._lowListener.indexOf(handler);
- if (pos > -1) {
- me._lowListener.splice(pos, 1);
- }
- } else if (eventType === "batterycritical") {
- var pos = me._criticalListener.indexOf(handler);
- if (pos > -1) {
- me._criticalListener.splice(pos, 1);
- }
- }
-
- // If there are no more registered event listeners stop the battery listener on native side.
- if (me._batteryListener.length === 0 && me._lowListener.length === 0 && me._criticalListener.length === 0) {
- PhoneGap.exec(null, null, "com.phonegap.battery", "stop", []);
- }
- }
-};
-
-/**
- * Callback for battery status
- *
- * @param {Object} info keys: level, isPlugged
- */
-Battery.prototype._status = function(info) {
- if (info) {
- var me = this;
- if (me._level != info.level || me._isPlugged != info.isPlugged) {
- // Fire batterystatus event
- //PhoneGap.fireWindowEvent("batterystatus", info);
- // use this workaround since iOS 3.x does have window.dispatchEvent
- PhoneGap.fireEvent("batterystatus", window, info);
-
- // Fire low battery event
- if (info.level == 20 || info.level == 5) {
- if (info.level == 20) {
- //PhoneGap.fireWindowEvent("batterylow", info);
- // use this workaround since iOS 3.x does not have window.dispatchEvent
- PhoneGap.fireEvent("batterylow", window, info);
- }
- else {
- //PhoneGap.fireWindowEvent("batterycritical", info);
- // use this workaround since iOS 3.x does not have window.dispatchEvent
- PhoneGap.fireEvent("batterycritical", window, info);
- }
- }
- }
- me._level = info.level;
- me._isPlugged = info.isPlugged;
- }
-};
-
-/**
- * Error callback for battery start
- */
-Battery.prototype._error = function(e) {
- console.log("Error initializing Battery: " + e);
-};
-
-PhoneGap.addConstructor(function() {
- if (typeof navigator.battery === "undefined") {
- navigator.battery = new Battery();
- PhoneGap.addWindowEventHandler("batterystatus", navigator.battery.eventHandler);
- PhoneGap.addWindowEventHandler("batterylow", navigator.battery.eventHandler);
- PhoneGap.addWindowEventHandler("batterycritical", navigator.battery.eventHandler);
- }
-});
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/camera.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/camera.js b/PhoneGapLib/javascripts/core/camera.js
deleted file mode 100644
index f7f1b6b..0000000
--- a/PhoneGapLib/javascripts/core/camera.js
+++ /dev/null
@@ -1,117 +0,0 @@
-if (!PhoneGap.hasResource("camera")) {
- PhoneGap.addResource("camera");
-
-
-/**
- * This class provides access to the device camera.
- * @constructor
- */
-Camera = function() {
-
-}
-/**
- * Available Camera Options
- * {boolean} allowEdit - true to allow editing image, default = false
- * {number} quality 0-100 (low to high) default = 100
- * {Camera.DestinationType} destinationType default = DATA_URL
- * {Camera.PictureSourceType} sourceType default = CAMERA
- * {number} targetWidth - width in pixels to scale image default = 0 (no scaling)
- * {number} targetHeight - height in pixels to scale image default = 0 (no scaling)
- * {Camera.EncodingType} - encodingType default = JPEG
- * {boolean} correctOrientation - Rotate the image to correct for the orientation of the device during capture (iOS only)
- * {boolean} saveToPhotoAlbum - Save the image to the photo album on the device after capture (iOS only)
- */
-/**
- * Format of image that is returned from getPicture.
- *
- * Example: navigator.camera.getPicture(success, fail,
- * { quality: 80,
- * destinationType: Camera.DestinationType.DATA_URL,
- * sourceType: Camera.PictureSourceType.PHOTOLIBRARY})
- */
-Camera.DestinationType = {
- DATA_URL: 0, // Return base64 encoded string
- FILE_URI: 1 // Return file uri
-};
-Camera.prototype.DestinationType = Camera.DestinationType;
-
-/**
- * Source to getPicture from.
- *
- * Example: navigator.camera.getPicture(success, fail,
- * { quality: 80,
- * destinationType: Camera.DestinationType.DATA_URL,
- * sourceType: Camera.PictureSourceType.PHOTOLIBRARY})
- */
-Camera.PictureSourceType = {
- PHOTOLIBRARY : 0, // Choose image from picture library
- CAMERA : 1, // Take picture from camera
- SAVEDPHOTOALBUM : 2 // Choose image from picture library
-};
-Camera.prototype.PictureSourceType = Camera.PictureSourceType;
-
-/**
- * Encoding of image returned from getPicture.
- *
- * Example: navigator.camera.getPicture(success, fail,
- * { quality: 80,
- * destinationType: Camera.DestinationType.DATA_URL,
- * sourceType: Camera.PictureSourceType.CAMERA,
- * encodingType: Camera.EncodingType.PNG})
- */
-Camera.EncodingType = {
- JPEG: 0, // Return JPEG encoded image
- PNG: 1 // Return PNG encoded image
-};
-Camera.prototype.EncodingType = Camera.EncodingType;
-
-/**
- * Type of pictures to select from. Only applicable when
- * PictureSourceType is PHOTOLIBRARY or SAVEDPHOTOALBUM
- *
- * Example: navigator.camera.getPicture(success, fail,
- * { quality: 80,
- * destinationType: Camera.DestinationType.DATA_URL,
- * sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
- * mediaType: Camera.MediaType.PICTURE})
- */
-Camera.MediaType = {
- PICTURE: 0, // allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType
- VIDEO: 1, // allow selection of video only, ONLY RETURNS URL
- ALLMEDIA : 2 // allow selection from all media types
-};
-Camera.prototype.MediaType = Camera.MediaType;
-
-/**
- * Gets a picture from source defined by "options.sourceType", and returns the
- * image as defined by the "options.destinationType" option.
-
- * The defaults are sourceType=CAMERA and destinationType=DATA_URL.
- *
- * @param {Function} successCallback
- * @param {Function} errorCallback
- * @param {Object} options
- */
-Camera.prototype.getPicture = function(successCallback, errorCallback, options) {
- // successCallback required
- if (typeof successCallback != "function") {
- console.log("Camera Error: successCallback is not a function");
- return;
- }
-
- // errorCallback optional
- if (errorCallback && (typeof errorCallback != "function")) {
- console.log("Camera Error: errorCallback is not a function");
- return;
- }
-
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.camera","getPicture",[options]);
-};
-
-
-
-PhoneGap.addConstructor(function() {
- if (typeof navigator.camera == "undefined") navigator.camera = new Camera();
-});
-};
-
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/capture.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/capture.js b/PhoneGapLib/javascripts/core/capture.js
deleted file mode 100644
index 6539dbe..0000000
--- a/PhoneGapLib/javascripts/core/capture.js
+++ /dev/null
@@ -1,194 +0,0 @@
-if (!PhoneGap.hasResource("capture")) {
- PhoneGap.addResource("capture");
-/**
- * The CaptureError interface encapsulates all errors in the Capture API.
- */
-function CaptureError() {
- this.code = null;
-};
-
-// Capture error codes
-CaptureError.CAPTURE_INTERNAL_ERR = 0;
-CaptureError.CAPTURE_APPLICATION_BUSY = 1;
-CaptureError.CAPTURE_INVALID_ARGUMENT = 2;
-CaptureError.CAPTURE_NO_MEDIA_FILES = 3;
-CaptureError.CAPTURE_NOT_SUPPORTED = 20;
-
-/**
- * The Capture interface exposes an interface to the camera and microphone of the hosting device.
- */
-function Capture() {
- this.supportedAudioModes = [];
- this.supportedImageModes = [];
- this.supportedVideoModes = [];
-};
-
-/**
- * Launch audio recorder application for recording audio clip(s).
- *
- * @param {Function} successCB
- * @param {Function} errorCB
- * @param {CaptureAudioOptions} options
- *
- * No audio recorder to launch for iOS - return CAPTURE_NOT_SUPPORTED
- */
-Capture.prototype.captureAudio = function(successCallback, errorCallback, options) {
- /*if (errorCallback && typeof errorCallback === "function") {
- errorCallback({
- "code": CaptureError.CAPTURE_NOT_SUPPORTED
- });
- }*/
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.mediacapture", "captureAudio", [options]);
-};
-
-/**
- * Launch camera application for taking image(s).
- *
- * @param {Function} successCB
- * @param {Function} errorCB
- * @param {CaptureImageOptions} options
- */
-Capture.prototype.captureImage = function(successCallback, errorCallback, options) {
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.mediacapture", "captureImage", [options]);
-};
-
-/**
- * Casts a PluginResult message property (array of objects) to an array of MediaFile objects
- * (used in Objective-C)
- *
- * @param {PluginResult} pluginResult
- */
-Capture.prototype._castMediaFile = function(pluginResult) {
- var mediaFiles = [];
- var i;
- for (i=0; i<pluginResult.message.length; i++) {
- var mediaFile = new MediaFile();
- mediaFile.name = pluginResult.message[i].name;
- mediaFile.fullPath = pluginResult.message[i].fullPath;
- mediaFile.type = pluginResult.message[i].type;
- mediaFile.lastModifiedDate = pluginResult.message[i].lastModifiedDate;
- mediaFile.size = pluginResult.message[i].size;
- mediaFiles.push(mediaFile);
- }
- pluginResult.message = mediaFiles;
- return pluginResult;
-};
-
-/**
- * Launch device camera application for recording video(s).
- *
- * @param {Function} successCB
- * @param {Function} errorCB
- * @param {CaptureVideoOptions} options
- */
-Capture.prototype.captureVideo = function(successCallback, errorCallback, options) {
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.mediacapture", "captureVideo", [options]);
-};
-
-/**
- * Encapsulates a set of parameters that the capture device supports.
- */
-function ConfigurationData() {
- // The ASCII-encoded string in lower case representing the media type.
- this.type;
- // The height attribute represents height of the image or video in pixels.
- // In the case of a sound clip this attribute has value 0.
- this.height = 0;
- // The width attribute represents width of the image or video in pixels.
- // In the case of a sound clip this attribute has value 0
- this.width = 0;
-};
-
-/**
- * Encapsulates all image capture operation configuration options.
- */
-var CaptureImageOptions = function() {
- // Upper limit of images user can take. Value must be equal or greater than 1.
- this.limit = 1;
- // The selected image mode. Must match with one of the elements in supportedImageModes array.
- this.mode = null;
-};
-
-/**
- * Encapsulates all video capture operation configuration options.
- */
-var CaptureVideoOptions = function() {
- // Upper limit of videos user can record. Value must be equal or greater than 1.
- this.limit = 1;
- // Maximum duration of a single video clip in seconds.
- this.duration = 0;
- // The selected video mode. Must match with one of the elements in supportedVideoModes array.
- this.mode = null;
-};
-
-/**
- * Encapsulates all audio capture operation configuration options.
- */
-var CaptureAudioOptions = function() {
- // Upper limit of sound clips user can record. Value must be equal or greater than 1.
- this.limit = 1;
- // Maximum duration of a single sound clip in seconds.
- this.duration = 0;
- // The selected audio mode. Must match with one of the elements in supportedAudioModes array.
- this.mode = null;
-};
-
-/**
- * Represents a single file.
- *
- * name {DOMString} name of the file, without path information
- * fullPath {DOMString} the full path of the file, including the name
- * type {DOMString} mime type
- * lastModifiedDate {Date} last modified date
- * size {Number} size of the file in bytes
- */
-function MediaFile(name, fullPath, type, lastModifiedDate, size) {
- this.name = name || null;
- this.fullPath = fullPath || null;
- this.type = type || null;
- this.lastModifiedDate = lastModifiedDate || null;
- this.size = size || 0;
-}
-
-/**
- * Request capture format data for a specific file and type
- *
- * @param {Function} successCB
- * @param {Function} errorCB
- */
-MediaFile.prototype.getFormatData = function(successCallback, errorCallback) {
- if (typeof this.fullPath === "undefined" || this.fullPath === null) {
- errorCallback({
- "code": CaptureError.CAPTURE_INVALID_ARGUMENT
- });
- } else {
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.mediacapture", "getFormatData", [this.fullPath, this.type]);
- }
-};
-
-/**
- * MediaFileData encapsulates format information of a media file.
- *
- * @param {DOMString} codecs
- * @param {long} bitrate
- * @param {long} height
- * @param {long} width
- * @param {float} duration
- */
-function MediaFileData(codecs, bitrate, height, width, duration) {
- this.codecs = codecs || null;
- this.bitrate = bitrate || 0;
- this.height = height || 0;
- this.width = width || 0;
- this.duration = duration || 0;
-}
-
-PhoneGap.addConstructor(function() {
- if (typeof navigator.device === "undefined") {
- navigator.device = window.device = new Device();
- }
- if (typeof navigator.device.capture === "undefined") {
- navigator.device.capture = window.device.capture = new Capture();
- }
-});
-};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/compass.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/compass.js b/PhoneGapLib/javascripts/core/compass.js
deleted file mode 100644
index 80ca9ce..0000000
--- a/PhoneGapLib/javascripts/core/compass.js
+++ /dev/null
@@ -1,155 +0,0 @@
-if (!PhoneGap.hasResource("compass")) {
- PhoneGap.addResource("compass");
-
-CompassError = function(){
- this.code = null;
-};
-
-// Capture error codes
-CompassError.COMPASS_INTERNAL_ERR = 0;
-CompassError.COMPASS_NOT_SUPPORTED = 20;
-
-CompassHeading = function() {
- this.magneticHeading = null;
- this.trueHeading = null;
- this.headingAccuracy = null;
- this.timestamp = null;
-}
-/**
- * This class provides access to device Compass data.
- * @constructor
- */
-Compass = function() {
- /**
- * List of compass watch timers
- */
- this.timers = {};
-};
-
-/**
- * Asynchronously acquires the current heading.
- * @param {Function} successCallback The function to call when the heading
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the heading data.
- * @param {PositionOptions} options The options for getting the heading data (not used).
- */
-Compass.prototype.getCurrentHeading = function(successCallback, errorCallback, options) {
- // successCallback required
- if (typeof successCallback !== "function") {
- console.log("Compass Error: successCallback is not a function");
- return;
- }
-
- // errorCallback optional
- if (errorCallback && (typeof errorCallback !== "function")) {
- console.log("Compass Error: errorCallback is not a function");
- return;
- }
-
- // Get heading
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.geolocation", "getCurrentHeading", []);
-};
-
-/**
- * Asynchronously acquires the heading repeatedly at a given interval.
- * @param {Function} successCallback The function to call each time the heading
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the heading data.
- * @param {HeadingOptions} options The options for getting the heading data
- * such as timeout and the frequency of the watch.
- */
-Compass.prototype.watchHeading= function(successCallback, errorCallback, options)
-{
- // Default interval (100 msec)
- var frequency = (options !== undefined) ? options.frequency : 100;
-
- // successCallback required
- if (typeof successCallback !== "function") {
- console.log("Compass Error: successCallback is not a function");
- return;
- }
-
- // errorCallback optional
- if (errorCallback && (typeof errorCallback !== "function")) {
- console.log("Compass Error: errorCallback is not a function");
- return;
- }
-
- // Start watch timer to get headings
- var id = PhoneGap.createUUID();
- navigator.compass.timers[id] = setInterval(
- function() {
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.geolocation", "getCurrentHeading", [{repeats: 1}]);
- }, frequency);
-
- return id;
-};
-
-
-/**
- * Clears the specified heading watch.
- * @param {String} watchId The ID of the watch returned from #watchHeading.
- */
-Compass.prototype.clearWatch = function(id)
-{
- // Stop javascript timer & remove from timer list
- if (id && navigator.compass.timers[id]) {
- clearInterval(navigator.compass.timers[id]);
- delete navigator.compass.timers[id];
- }
- if (navigator.compass.timers.length == 0) {
- // stop the
- PhoneGap.exec(null, null, "com.phonegap.geolocation", "stopHeading", []);
- }
-};
-
-/** iOS only
- * Asynchronously fires when the heading changes from the last reading. The amount of distance
- * required to trigger the event is specified in the filter paramter.
- * @param {Function} successCallback The function to call each time the heading
- * data is available
- * @param {Function} errorCallback The function to call when there is an error
- * getting the heading data.
- * @param {HeadingOptions} options The options for getting the heading data
- * @param {filter} number of degrees change to trigger a callback with heading data (float)
- *
- * In iOS this function is more efficient than calling watchHeading with a frequency for updates.
- * Only one watchHeadingFilter can be in effect at one time. If a watchHeadingFilter is in effect, calling
- * getCurrentHeading or watchHeading will use the existing filter value for specifying heading change.
- */
-Compass.prototype.watchHeadingFilter = function(successCallback, errorCallback, options)
-{
-
- if (options === undefined || options.filter === undefined) {
- console.log("Compass Error: options.filter not specified");
- return;
- }
-
- // successCallback required
- if (typeof successCallback !== "function") {
- console.log("Compass Error: successCallback is not a function");
- return;
- }
-
- // errorCallback optional
- if (errorCallback && (typeof errorCallback !== "function")) {
- console.log("Compass Error: errorCallback is not a function");
- return;
- }
- PhoneGap.exec(successCallback, errorCallback, "com.phonegap.geolocation", "watchHeadingFilter", [options]);
-}
-Compass.prototype.clearWatchFilter = function()
-{
- PhoneGap.exec(null, null, "com.phonegap.geolocation", "stopHeading", []);
-};
-
-PhoneGap.addConstructor(function()
-{
- if (typeof navigator.compass == "undefined")
- {
- navigator.compass = new Compass();
- }
-});
-};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/contact.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/contact.js b/PhoneGapLib/javascripts/core/contact.js
deleted file mode 100644
index e80fcee..0000000
--- a/PhoneGapLib/javascripts/core/contact.js
+++ /dev/null
@@ -1,409 +0,0 @@
-if (!PhoneGap.hasResource("contact")) {
- PhoneGap.addResource("contact");
-
-
-/**
-* Contains information about a single contact.
-* @param {DOMString} id unique identifier
-* @param {DOMString} displayName
-* @param {ContactName} name
-* @param {DOMString} nickname
-* @param {ContactField[]} phoneNumbers array of phone numbers
-* @param {ContactField[]} emails array of email addresses
-* @param {ContactAddress[]} addresses array of addresses
-* @param {ContactField[]} ims instant messaging user ids
-* @param {ContactOrganization[]} organizations
-* @param {DOMString} birthday contact's birthday
-* @param {DOMString} note user notes about contact
-* @param {ContactField[]} photos
-* @param {Array.<ContactField>} categories
-* @param {ContactField[]} urls contact's web sites
-*/
-var Contact = function(id, displayName, name, nickname, phoneNumbers, emails, addresses,
- ims, organizations, birthday, note, photos, categories, urls) {
- this.id = id || null;
- this.displayName = displayName || null;
- this.name = name || null; // ContactName
- this.nickname = nickname || null;
- this.phoneNumbers = phoneNumbers || null; // ContactField[]
- this.emails = emails || null; // ContactField[]
- this.addresses = addresses || null; // ContactAddress[]
- this.ims = ims || null; // ContactField[]
- this.organizations = organizations || null; // ContactOrganization[]
- this.birthday = birthday || null; // JS Date
- this.note = note || null;
- this.photos = photos || null; // ContactField[]
- this.categories = categories || null;
- this.urls = urls || null; // ContactField[]
-};
-
-/**
-* Converts Dates to milliseconds before sending to iOS
-*/
-Contact.prototype.convertDatesOut = function()
-{
- var dates = new Array("birthday");
- for (var i=0; i<dates.length; i++){
- var value = this[dates[i]];
- if (value){
- if (!value instanceof Date){
- try {
- value = new Date(value);
- } catch(exception){
- value = null;
- }
- }
- if (value instanceof Date){
- value = value.valueOf();
- }
- this[dates[i]] = value;
- }
- }
-
-};
-/**
-* Converts milliseconds to JS Date when returning from iOS
-*/
-Contact.prototype.convertDatesIn = function()
-{
- var dates = new Array("birthday");
- for (var i=0; i<dates.length; i++){
- var value = this[dates[i]];
- if (value){
- try {
- this[dates[i]] = new Date(parseFloat(value));
- } catch (exception){
- console.log("exception creating date");
- }
- }
- }
-};
-/**
-* Removes contact from device storage.
-* @param successCB success callback
-* @param errorCB error callback (optional)
-*/
-Contact.prototype.remove = function(successCB, errorCB) {
- if (this.id == null) {
- var errorObj = new ContactError();
- errorObj.code = ContactError.UNKNOWN_ERROR;
- errorCB(errorObj);
- }
- else {
- PhoneGap.exec(successCB, errorCB, "com.phonegap.contacts", "remove", [{ "contact": this}]);
- }
-};
-/**
-* iOS ONLY
-* displays contact via iOS UI
-* NOT part of W3C spec so no official documentation
-*
-* @param errorCB error callback
-* @param options object
-* allowsEditing: boolean AS STRING
-* "true" to allow editing the contact
-* "false" (default) display contact
-*/
-Contact.prototype.display = function(errorCB, options) {
- if (this.id == null) {
- if (typeof errorCB == "function") {
- var errorObj = new ContactError();
- errorObj.code = ContactError.UNKNOWN_ERROR;
- errorCB(errorObj);
- }
- }
- else {
- PhoneGap.exec(null, errorCB, "com.phonegap.contacts","displayContact", [this.id, options]);
- }
-};
-
-/**
-* Creates a deep copy of this Contact.
-* With the contact ID set to null.
-* @return copy of this Contact
-*/
-Contact.prototype.clone = function() {
- var clonedContact = PhoneGap.clone(this);
- clonedContact.id = null;
- // Loop through and clear out any id's in phones, emails, etc.
- if (clonedContact.phoneNumbers) {
- for (i=0; i<clonedContact.phoneNumbers.length; i++) {
- clonedContact.phoneNumbers[i].id = null;
- }
- }
- if (clonedContact.emails) {
- for (i=0; i<clonedContact.emails.length; i++) {
- clonedContact.emails[i].id = null;
- }
- }
- if (clonedContact.addresses) {
- for (i=0; i<clonedContact.addresses.length; i++) {
- clonedContact.addresses[i].id = null;
- }
- }
- if (clonedContact.ims) {
- for (i=0; i<clonedContact.ims.length; i++) {
- clonedContact.ims[i].id = null;
- }
- }
- if (clonedContact.organizations) {
- for (i=0; i<clonedContact.organizations.length; i++) {
- clonedContact.organizations[i].id = null;
- }
- }
- if (clonedContact.photos) {
- for (i=0; i<clonedContact.photos.length; i++) {
- clonedContact.photos[i].id = null;
- }
- }
- if (clonedContact.urls) {
- for (i=0; i<clonedContact.urls.length; i++) {
- clonedContact.urls[i].id = null;
- }
- }
- return clonedContact;
-};
-
-/**
-* Persists contact to device storage.
-* @param successCB success callback
-* @param errorCB error callback - optional
-*/
-Contact.prototype.save = function(successCB, errorCB) {
- // don't modify the original contact
- var cloned = PhoneGap.clone(this);
- cloned.convertDatesOut();
- PhoneGap.exec(successCB, errorCB, "com.phonegap.contacts","save", [{"contact": cloned}]);
-};
-
-/**
-* Contact name.
-* @param formatted
-* @param familyName
-* @param givenName
-* @param middle
-* @param prefix
-* @param suffix
-*/
-var ContactName = function(formatted, familyName, givenName, middle, prefix, suffix) {
- this.formatted = formatted != "undefined" ? formatted : null;
- this.familyName = familyName != "undefined" ? familyName : null;
- this.givenName = givenName != "undefined" ? givenName : null;
- this.middleName = middle != "undefined" ? middle : null;
- this.honorificPrefix = prefix != "undefined" ? prefix : null;
- this.honorificSuffix = suffix != "undefined" ? suffix : null;
-};
-
-/**
-* Generic contact field.
-* @param type
-* @param value
-* @param pref
-* @param id
-*/
-var ContactField = function(type, value, pref, id) {
- this.type = type != "undefined" ? type : null;
- this.value = value != "undefined" ? value : null;
- this.pref = pref != "undefined" ? pref : null;
- this.id = id != "undefined" ? id : null;
-};
-
-/**
-* Contact address.
-* @param pref - boolean is primary / preferred address
-* @param type - string - work, home…..
-* @param formatted
-* @param streetAddress
-* @param locality
-* @param region
-* @param postalCode
-* @param country
-*/
-var ContactAddress = function(pref, type, formatted, streetAddress, locality, region, postalCode, country, id) {
- this.pref = pref != "undefined" ? pref : null;
- this.type = type != "undefined" ? type : null;
- this.formatted = formatted != "undefined" ? formatted : null;
- this.streetAddress = streetAddress != "undefined" ? streetAddress : null;
- this.locality = locality != "undefined" ? locality : null;
- this.region = region != "undefined" ? region : null;
- this.postalCode = postalCode != "undefined" ? postalCode : null;
- this.country = country != "undefined" ? country : null;
- this.id = id != "undefined" ? id : null;
-};
-
-/**
-* Contact organization.
-* @param pref - boolean is primary / preferred address
-* @param type - string - work, home…..
-* @param name
-* @param dept
-* @param title
-*/
-var ContactOrganization = function(pref, type, name, dept, title) {
- this.pref = pref != "undefined" ? pref : null;
- this.type = type != "undefined" ? type : null;
- this.name = name != "undefined" ? name : null;
- this.department = dept != "undefined" ? dept : null;
- this.title = title != "undefined" ? title : null;
-};
-
-/**
-* Contact account.
-* @param domain
-* @param username
-* @param userid
-*/
-/*var ContactAccount = function(domain, username, userid) {
- this.domain = domain != "undefined" ? domain : null;
- this.username = username != "undefined" ? username : null;
- this.userid = userid != "undefined" ? userid : null;
-}*/
-
-/**
-* Represents a group of Contacts.
-*/
-var Contacts = function() {
- this.inProgress = false;
- this.records = new Array();
-};
-/**
-* Returns an array of Contacts matching the search criteria.
-* @param fields that should be searched
-* @param successCB success callback
-* @param errorCB error callback (optional)
-* @param {ContactFindOptions} options that can be applied to contact searching
-* @return array of Contacts matching search criteria
-*/
-Contacts.prototype.find = function(fields, successCB, errorCB, options) {
- if (successCB === null) {
- throw new TypeError("You must specify a success callback for the find command.");
- }
- if (fields === null || fields === "undefined" || fields.length === "undefined" || fields.length <= 0) {
- if (typeof errorCB === "function") {
- errorCB({"code": ContactError.INVALID_ARGUMENT_ERROR});
- }
- } else {
- PhoneGap.exec(successCB, errorCB, "com.phonegap.contacts","search", [{"fields":fields, "findOptions":options}]);
- }
-};
-/**
-* need to turn the array of JSON strings representing contact objects into actual objects
-* @param array of JSON strings with contact data
-* @return call results callback with array of Contact objects
-* This function is called from objective C Contacts.search() method.
-*/
-Contacts.prototype._findCallback = function(pluginResult) {
- var contacts = new Array();
- try {
- for (var i=0; i<pluginResult.message.length; i++) {
- var newContact = navigator.contacts.create(pluginResult.message[i]);
- newContact.convertDatesIn();
- contacts.push(newContact);
- }
- pluginResult.message = contacts;
- } catch(e){
- console.log("Error parsing contacts: " +e);
- }
- return pluginResult;
-}
-
-/**
-* need to turn the JSON string representing contact object into actual object
-* @param JSON string with contact data
-* Call stored results function with Contact object
-* This function is called from objective C Contacts remove and save methods
-*/
-Contacts.prototype._contactCallback = function(pluginResult)
-{
- var newContact = null;
- if (pluginResult.message){
- try {
- newContact = navigator.contacts.create(pluginResult.message);
- newContact.convertDatesIn();
- } catch(e){
- console.log("Error parsing contact");
- }
- }
- pluginResult.message = newContact;
- return pluginResult;
-
-};
-/**
-* Need to return an error object rather than just a single error code
-* @param error code
-* Call optional error callback if found.
-* Called from objective c find, remove, and save methods on error.
-*/
-Contacts.prototype._errCallback = function(pluginResult)
-{
- var errorObj = new ContactError();
- errorObj.code = pluginResult.message;
- pluginResult.message = errorObj;
- return pluginResult;
-};
-// iPhone only api to create a new contact via the GUI
-Contacts.prototype.newContactUI = function(successCallback) {
- PhoneGap.exec(successCallback, null, "com.phonegap.contacts","newContact", []);
-};
-// iPhone only api to select a contact via the GUI
-Contacts.prototype.chooseContact = function(successCallback, options) {
- PhoneGap.exec(successCallback, null, "com.phonegap.contacts","chooseContact", options);
-};
-
-
-/**
-* This function creates a new contact, but it does not persist the contact
-* to device storage. To persist the contact to device storage, invoke
-* contact.save().
-* @param properties an object who's properties will be examined to create a new Contact
-* @returns new Contact object
-*/
-Contacts.prototype.create = function(properties) {
- var i;
- var contact = new Contact();
- for (i in properties) {
- if (contact[i] !== 'undefined') {
- contact[i] = properties[i];
- }
- }
- return contact;
-};
-
-/**
- * ContactFindOptions.
- * @param filter used to match contacts against
- * @param multiple boolean used to determine if more than one contact should be returned
- */
-var ContactFindOptions = function(filter, multiple, updatedSince) {
- this.filter = filter || '';
- this.multiple = multiple || false;
-};
-
-/**
- * ContactError.
- * An error code assigned by an implementation when an error has occurred
- */
-var ContactError = function() {
- this.code=null;
-};
-
-/**
- * Error codes
- */
-ContactError.UNKNOWN_ERROR = 0;
-ContactError.INVALID_ARGUMENT_ERROR = 1;
-ContactError.TIMEOUT_ERROR = 2;
-ContactError.PENDING_OPERATION_ERROR = 3;
-ContactError.IO_ERROR = 4;
-ContactError.NOT_SUPPORTED_ERROR = 5;
-ContactError.PERMISSION_DENIED_ERROR = 20;
-
-/**
- * Add the contact interface into the browser.
- */
-PhoneGap.addConstructor(function() {
- if(typeof navigator.contacts == "undefined") {
- navigator.contacts = new Contacts();
- }
-});
-};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/debugconsole.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/debugconsole.js b/PhoneGapLib/javascripts/core/debugconsole.js
deleted file mode 100644
index bcc233c..0000000
--- a/PhoneGapLib/javascripts/core/debugconsole.js
+++ /dev/null
@@ -1,108 +0,0 @@
-if (!PhoneGap.hasResource("debugconsole")) {
- PhoneGap.addResource("debugconsole");
-
-/**
- * This class provides access to the debugging console.
- * @constructor
- */
-var DebugConsole = function() {
- this.winConsole = window.console;
- this.logLevel = DebugConsole.INFO_LEVEL;
-}
-
-// from most verbose, to least verbose
-DebugConsole.ALL_LEVEL = 1; // same as first level
-DebugConsole.INFO_LEVEL = 1;
-DebugConsole.WARN_LEVEL = 2;
-DebugConsole.ERROR_LEVEL = 4;
-DebugConsole.NONE_LEVEL = 8;
-
-DebugConsole.prototype.setLevel = function(level) {
- this.logLevel = level;
-};
-
-/**
- * Utility function for rendering and indenting strings, or serializing
- * objects to a string capable of being printed to the console.
- * @param {Object|String} message The string or object to convert to an indented string
- * @private
- */
-DebugConsole.prototype.processMessage = function(message, maxDepth) {
- if (maxDepth === undefined) maxDepth = 0;
- if (typeof(message) != 'object') {
- return (this.isDeprecated ? "WARNING: debug object is deprecated, please use console object \n" + message : message);
- } else {
- /**
- * @function
- * @ignore
- */
- function indent(str) {
- return str.replace(/^/mg, " ");
- }
- /**
- * @function
- * @ignore
- */
- function makeStructured(obj, depth) {
- var str = "";
- for (var i in obj) {
- try {
- if (typeof(obj[i]) == 'object' && depth < maxDepth) {
- str += i + ":\n" + indent(makeStructured(obj[i])) + "\n";
- } else {
- str += i + " = " + indent(String(obj[i])).replace(/^ /, "") + "\n";
- }
- } catch(e) {
- str += i + " = EXCEPTION: " + e.message + "\n";
- }
- }
- return str;
- }
-
- return ("Object:\n" + makeStructured(message, maxDepth));
- }
-};
-
-/**
- * Print a normal log message to the console
- * @param {Object|String} message Message or object to print to the console
- */
-DebugConsole.prototype.log = function(message, maxDepth) {
- if (PhoneGap.available && this.logLevel <= DebugConsole.INFO_LEVEL)
- PhoneGap.exec(null, null, 'com.phonegap.debugconsole', 'log',
- [ this.processMessage(message, maxDepth), { logLevel: 'INFO' } ]
- );
- else
- this.winConsole.log(message);
-};
-
-/**
- * Print a warning message to the console
- * @param {Object|String} message Message or object to print to the console
- */
-DebugConsole.prototype.warn = function(message, maxDepth) {
- if (PhoneGap.available && this.logLevel <= DebugConsole.WARN_LEVEL)
- PhoneGap.exec(null, null, 'com.phonegap.debugconsole', 'log',
- [ this.processMessage(message, maxDepth), { logLevel: 'WARN' } ]
- );
- else
- this.winConsole.error(message);
-};
-
-/**
- * Print an error message to the console
- * @param {Object|String} message Message or object to print to the console
- */
-DebugConsole.prototype.error = function(message, maxDepth) {
- if (PhoneGap.available && this.logLevel <= DebugConsole.ERROR_LEVEL)
- PhoneGap.exec(null, null, 'com.phonegap.debugconsole', 'log',
- [ this.processMessage(message, maxDepth), { logLevel: 'ERROR' } ]
- );
- else
- this.winConsole.error(message);
-};
-
-PhoneGap.addConstructor(function() {
- window.console = new DebugConsole();
-});
-};
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/bcff9559/PhoneGapLib/javascripts/core/device.js
----------------------------------------------------------------------
diff --git a/PhoneGapLib/javascripts/core/device.js b/PhoneGapLib/javascripts/core/device.js
deleted file mode 100644
index 6f9b8d1..0000000
--- a/PhoneGapLib/javascripts/core/device.js
+++ /dev/null
@@ -1,37 +0,0 @@
-if (!PhoneGap.hasResource("device")) {
- PhoneGap.addResource("device");
-
-/**
- * this represents the mobile device, and provides properties for inspecting the model, version, UUID of the
- * phone, etc.
- * @constructor
- */
-Device = function()
-{
- this.platform = null;
- this.version = null;
- this.name = null;
- this.phonegap = null;
- this.uuid = null;
- try
- {
- this.platform = DeviceInfo.platform;
- this.version = DeviceInfo.version;
- this.name = DeviceInfo.name;
- this.phonegap = DeviceInfo.gap;
- this.uuid = DeviceInfo.uuid;
-
- }
- catch(e)
- {
- // TODO:
- }
- this.available = PhoneGap.available = this.uuid != null;
-}
-
-PhoneGap.addConstructor(function() {
- if (typeof navigator.device === "undefined") {
- navigator.device = window.device = new Device();
- }
-});
-};