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
[12/29] ios commit: Updating contacts for unified JS
Updating contacts for unified JS
*Removed calling back to cast methods
*Modified argument passing into search - fields array is in arguments,
Contact object is the only entry in options
*Modified remove to take Contact id as input, no longer returns removed Contact
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/9559aacd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/9559aacd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/9559aacd
Branch: refs/heads/master
Commit: 9559aacdb83c3ac8853391b187dc572aa3a15aee
Parents: 9bf0e8c
Author: Becky Gibson <be...@apache.org>
Authored: Tue Mar 13 09:30:01 2012 -0400
Committer: Fil Maj <ma...@gmail.com>
Committed: Fri Mar 16 10:56:50 2012 -0700
----------------------------------------------------------------------
CordovaLib/Classes/CDVContact.h | 2 +-
CordovaLib/Classes/CDVContact.m | 14 +++++++-------
CordovaLib/Classes/CDVContacts.m | 27 ++++++++++++++-------------
3 files changed, 22 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/9559aacd/CordovaLib/Classes/CDVContact.h
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVContact.h b/CordovaLib/Classes/CDVContact.h
index d392af6..63c7fbb 100644
--- a/CordovaLib/Classes/CDVContact.h
+++ b/CordovaLib/Classes/CDVContact.h
@@ -27,7 +27,7 @@ enum CDVContactError {
UNKNOWN_ERROR = 0,
INVALID_ARGUMENT_ERROR = 1,
TIMEOUT_ERROR = 2,
- PENDING_OPERATION_ERROR = 2,
+ PENDING_OPERATION_ERROR = 3,
IO_ERROR = 4,
NOT_SUPPORTED_ERROR = 5,
PERMISSION_DENIED_ERROR = 20
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/9559aacd/CordovaLib/Classes/CDVContact.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVContact.m b/CordovaLib/Classes/CDVContact.m
index cd76f81..9640569 100644
--- a/CordovaLib/Classes/CDVContact.m
+++ b/CordovaLib/Classes/CDVContact.m
@@ -283,19 +283,19 @@ static NSDictionary* org_apache_cordova_contacts_defaultFields = nil;
// set phoneNumbers
//NSLog(@"setting phoneNumbers");
NSArray* array = [aContact valueForKey:kW3ContactPhoneNumbers];
- if ([array isKindOfClass:[NSArray class]]){
+ if ([array isKindOfClass:[NSArray class]] && [array count] > 0){
[self setMultiValueStrings: array forProperty: kABPersonPhoneProperty inRecord: person asUpdate: bUpdate];
}
// set Emails
//NSLog(@"setting emails");
array = [aContact valueForKey:kW3ContactEmails];
- if ([array isKindOfClass:[NSArray class]]){
+ if ([array isKindOfClass:[NSArray class]] && [array count] > 0){
[self setMultiValueStrings: array forProperty: kABPersonEmailProperty inRecord: person asUpdate: bUpdate];
}
// set Urls
//NSLog(@"setting urls");
array = [aContact valueForKey:kW3ContactUrls];
- if ([array isKindOfClass:[NSArray class]]){
+ if ([array isKindOfClass:[NSArray class]] && [array count] > 0){
[self setMultiValueStrings: array forProperty: kABPersonURLProperty inRecord: person asUpdate: bUpdate];
}
@@ -306,13 +306,13 @@ static NSDictionary* org_apache_cordova_contacts_defaultFields = nil;
//NSLog(@"setting addresses");
error = nil;
array = [aContact valueForKey:kW3ContactAddresses];
- if ([array isKindOfClass:[NSArray class]]){
+ if ([array isKindOfClass:[NSArray class]] && [array count] > 0){
[self setMultiValueDictionary: array forProperty: kABPersonAddressProperty inRecord: person asUpdate: bUpdate];
}
//ims
//NSLog(@"setting ims");
array = [aContact valueForKey:kW3ContactIms];
- if ([array isKindOfClass:[NSArray class]]){
+ if ([array isKindOfClass:[NSArray class]] && [array count] > 0){
[self setMultiValueDictionary: array forProperty: kABPersonInstantMessageProperty inRecord: person asUpdate: bUpdate];
}
@@ -321,7 +321,7 @@ static NSDictionary* org_apache_cordova_contacts_defaultFields = nil;
// iOS only supports name, title, department
//NSLog(@"setting organizations");
array = [aContact valueForKey:kW3ContactOrganizations]; // iOS only supports one organization - use first one
- if ([array isKindOfClass:[NSArray class]]){
+ if ([array isKindOfClass:[NSArray class]] && [array count] > 0){
NSDictionary* dict = [array objectAtIndex:0];
if ([dict isKindOfClass:[NSDictionary class]]){
[self setValue: [dict valueForKey:@"name"] forProperty: kABPersonOrganizationProperty inRecord: person asUpdate: bUpdate];
@@ -360,7 +360,7 @@ static NSDictionary* org_apache_cordova_contacts_defaultFields = nil;
// photo
array = [aContact valueForKey: kW3ContactPhotos];
- if ([array isKindOfClass:[NSArray class]]){
+ if ([array isKindOfClass:[NSArray class]] && [array count] > 0){
if (bUpdate && [array count] == 0){
// remove photo
bSuccess = ABPersonRemoveImageData(person, &error);
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/9559aacd/CordovaLib/Classes/CDVContacts.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVContacts.m b/CordovaLib/Classes/CDVContacts.m
index cf38542..8c397a5 100755
--- a/CordovaLib/Classes/CDVContacts.m
+++ b/CordovaLib/Classes/CDVContacts.m
@@ -247,12 +247,11 @@
NSString* callbackId = [arguments objectAtIndex:0];
- NSArray* fields = [options valueForKey:@"fields"];
- NSDictionary* findOptions = [options valueForKey:@"findOptions"];
-
+ //NSArray* fields = [options valueForKey:@"fields"];
+ NSArray* fields = [arguments objectAtIndex:1];
+ NSDictionary* findOptions = options;
ABAddressBookRef addrBook = nil;
NSArray* foundRecords = nil;
-
addrBook = ABAddressBookCreate();
// get the findOptions values
@@ -320,7 +319,7 @@
}
CDVPluginResult* result = nil;
// return found contacts (array is empty if no contacts found)
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray: returnContacts cast: @"navigator.contacts._findCallback"];
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray: returnContacts];
jsString = [result toSuccessCallbackString:callbackId];
// NSLog(@"findCallback string: %@", jsString);
@@ -349,7 +348,7 @@
CFErrorRef error;
CDVPluginResult* result = nil;
- NSMutableDictionary* contactDict = [options valueForKey:@"contact"];
+ NSMutableDictionary* contactDict = options; //[options valueForKey:@"contact"];
ABAddressBookRef addrBook = ABAddressBookCreate();
NSNumber* cId = [contactDict valueForKey:kW3ContactId];
@@ -384,7 +383,7 @@
// for now (while testing) give back saved, full contact
NSDictionary* newContact = [aContact toDictionary: [CDVContact defaultFields]];
//NSString* contactStr = [newContact JSONRepresentation];
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: newContact cast: @"navigator.contacts._contactCallback" ];
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: newContact];
jsString = [result toSuccessCallbackString:callbackId];
}
} else {
@@ -395,7 +394,7 @@
CFRelease(addrBook);
if (bIsError){
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsInt: errCode cast:@"navigator.contacts._errCallback" ];
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject: errCode];
jsString = [result toErrorCallbackString:callbackId];
}
@@ -409,6 +408,7 @@
- (void) remove: (NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
NSString* callbackId = [arguments objectAtIndex:0];
+ NSNumber* cId = [arguments objectAtIndex:1];
NSString* jsString = nil;
bool bIsError = FALSE, bSuccess = FALSE;
CDVContactError errCode = UNKNOWN_ERROR;
@@ -417,9 +417,9 @@
ABRecordRef rec = nil;
CDVPluginResult* result = nil;
- NSMutableDictionary* contactDict = [options valueForKey:@"contact"];
+ //NSMutableDictionary* contactDict = options;
addrBook = ABAddressBookCreate();
- NSNumber* cId = [contactDict valueForKey:kW3ContactId];
+ //NSNumber* cId = [contactDict valueForKey:kW3ContactId];
if (cId && ![cId isKindOfClass:[NSNull class]] && [cId intValue] != kABRecordInvalidID){
rec = ABAddressBookGetPersonWithRecordID(addrBook, [cId intValue]);
if (rec){
@@ -434,8 +434,9 @@
errCode = IO_ERROR;
}else {
// set id to null
- [contactDict setObject:[NSNull null] forKey:kW3ContactId];
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: contactDict cast: @"navigator.contacts._contactCallback"];
+ //[contactDict setObject:[NSNull null] forKey:kW3ContactId];
+ //result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary: contactDict];
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
jsString = [result toSuccessCallbackString:callbackId];
//NSString* contactStr = [contactDict JSONRepresentation];
}
@@ -457,7 +458,7 @@
CFRelease(addrBook);
}
if (bIsError){
- result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsInt: errCode cast: @"navigator.contacts._errCallback"];
+ result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageToErrorObject: errCode];
jsString = [result toErrorCallbackString:callbackId];
}
if (jsString){