Udpated CDVContacts chooseContact() to support allowsEditing behavior.

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/f4ee4eef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/f4ee4eef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/f4ee4eef

Branch: refs/heads/master
Commit: f4ee4eef9fb0844c5ec628b6419d8af55f9f63fb
Parents: 92e159b
Author: Olivier Louvignes <oliv...@mg-crea.com>
Authored: Thu Jul 12 16:55:32 2012 +0200
Committer: Becky Gibson <becka...@apache.org>
Committed: Thu Aug 16 11:19:50 2012 -0400

----------------------------------------------------------------------
 CordovaLib/Classes/CDVContacts.h |    4 ++--
 CordovaLib/Classes/CDVContacts.m |   12 +++++-------
 2 files changed, 7 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/f4ee4eef/CordovaLib/Classes/CDVContacts.h
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVContacts.h b/CordovaLib/Classes/CDVContacts.h
index e5f65a8..dc3b774 100755
--- a/CordovaLib/Classes/CDVContacts.h
+++ b/CordovaLib/Classes/CDVContacts.h
@@ -108,13 +108,13 @@
        BOOL allowsEditing;
        NSString* callbackId;
        NSMutableDictionary *options;
-       ABRecordID selectedId;
+       NSDictionary *pickedContactDictionary;
 }
 
 @property BOOL allowsEditing;
 @property (copy) NSString* callbackId;
 @property (nonatomic, retain) NSMutableDictionary *options;
-@property ABRecordID selectedId;
+@property (nonatomic, retain) NSDictionary *pickedContactDictionary;
 
 @end
 

http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/f4ee4eef/CordovaLib/Classes/CDVContacts.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVContacts.m b/CordovaLib/Classes/CDVContacts.m
index 0aaea7f..93b0e2d 100755
--- a/CordovaLib/Classes/CDVContacts.m
+++ b/CordovaLib/Classes/CDVContacts.m
@@ -30,7 +30,7 @@
 @synthesize allowsEditing;
 @synthesize callbackId;
 @synthesize options;
-@synthesize selectedId;
+@synthesize pickedContactDictionary;
 
 @end
 @implementation CDVNewContactsController
@@ -179,7 +179,7 @@
        pickerController.peoplePickerDelegate = self;
        pickerController.callbackId = callbackId;
        pickerController.options = options;
-       pickerController.selectedId = kABRecordInvalidID;
+       pickerController.pickedContactDictionary = [NSDictionary 
dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:kABRecordInvalidID], 
@"id", nil];
        pickerController.allowsEditing = (BOOL)[options existsValue:@"true" 
forKey:@"allowsEditing"];
        
     if ([self.viewController 
respondsToSelector:@selector(presentViewController:::)]) {
@@ -194,14 +194,12 @@
 {
        
        CDVContactsPicker* picker = (CDVContactsPicker*)peoplePicker;
-       ABRecordID contactId = ABRecordGetRecordID(person);
-       picker.selectedId = contactId; // save so can return when dismiss
 
        // Retreive pickedContact information
        CDVContact* pickedContact = [[[CDVContact alloc] 
initFromABRecord:(ABRecordRef)person] autorelease];
        NSArray *fields = [picker.options objectForKey:@"fields"] ?: [NSArray 
arrayWithObjects:@"id", nil];
        NSDictionary *returnFields = [[CDVContact class] calcReturnFields: 
fields];
-       NSDictionary *pickedContactDictionary = [pickedContact 
toDictionary:returnFields];
+       picker.pickedContactDictionary = [pickedContact 
toDictionary:returnFields];
        
        if (picker.allowsEditing) {
                
@@ -214,7 +212,7 @@
                [peoplePicker pushViewController:personController animated:YES];
        } else {
                // return the pickedContact information
-               CDVPluginResult *result = [CDVPluginResult resultWithStatus: 
CDVCommandStatus_OK messageAsDictionary: pickedContactDictionary];
+               CDVPluginResult *result = [CDVPluginResult resultWithStatus: 
CDVCommandStatus_OK messageAsDictionary: picker.pickedContactDictionary];
                [self writeJavascript:[result toSuccessCallbackString: 
picker.callbackId]];
                
         if ([picker respondsToSelector:@selector(presentingViewController)]) { 
@@ -236,7 +234,7 @@
 {
        // return contactId or invalid if none picked
        CDVContactsPicker* picker = (CDVContactsPicker*)peoplePicker;
-       CDVPluginResult* result = [CDVPluginResult 
resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[NSDictionary 
dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:kABRecordInvalidID], 
@"id", nil]];
+       CDVPluginResult* result = [CDVPluginResult 
resultWithStatus:CDVCommandStatus_OK 
messageAsDictionary:picker.pickedContactDictionary];
        [self writeJavascript:[result 
toSuccessCallbackString:picker.callbackId]];
        
     if ([peoplePicker respondsToSelector:@selector(presentingViewController)]) 
{ 

Reply via email to