diff --git a/TKContactPicker/.DS_Store b/TKContactPicker/.DS_Store deleted file mode 100644 index 629774e..0000000 Binary files a/TKContactPicker/.DS_Store and /dev/null differ diff --git a/TKContactPicker/Controllers/TKContactsMultiPickerController.h b/TKContactPicker/Controllers/TKContactsMultiPickerController.h index 60b4e71..46c77ad 100755 --- a/TKContactPicker/Controllers/TKContactsMultiPickerController.h +++ b/TKContactPicker/Controllers/TKContactsMultiPickerController.h @@ -39,6 +39,7 @@ @property (nonatomic, copy) NSString *savedSearchTerm; @property (nonatomic) NSInteger savedScopeButtonIndex; @property (nonatomic) BOOL searchWasActive; +@property (nonatomic, retain) NSArray *preselectedContacts; - (id)initWithGroup:(TKGroup*)group; diff --git a/TKContactPicker/Controllers/TKContactsMultiPickerController.m b/TKContactPicker/Controllers/TKContactsMultiPickerController.m index ff2a746..e290285 100755 --- a/TKContactPicker/Controllers/TKContactsMultiPickerController.m +++ b/TKContactPicker/Controllers/TKContactsMultiPickerController.m @@ -25,6 +25,7 @@ @implementation TKContactsMultiPickerController @synthesize savedScopeButtonIndex = _savedScopeButtonIndex; @synthesize searchWasActive = _searchWasActive; @synthesize searchBar = _searchBar; +@synthesize preselectedContacts; #pragma mark - #pragma mark Craete addressbook ref @@ -47,7 +48,10 @@ - (void)reloadAddressBook allPeople = ABAddressBookCopyArrayOfAllPeople(addressBooks); peopleCount = ABAddressBookGetPersonCount(addressBooks); } - + + NSArray *allPreselectedRecordIds = [self.preselectedContacts valueForKey:@"recordID"]; + NSLog(@"all record ids: %@", allPreselectedRecordIds); + NSLog(@"preselected contacts: %@", self.preselectedContacts); for (NSInteger i = 0; i < peopleCount; i++) { ABRecordRef contactRecord = CFArrayGetValueAtIndex(allPeople, i); @@ -96,8 +100,12 @@ - (void)reloadAddressBook } contact.name = fullNameString; - contact.recordID = (int)ABRecordGetRecordID(contactRecord); - contact.rowSelected = NO; + contact.recordID = @((int)ABRecordGetRecordID(contactRecord)); + if ([allPreselectedRecordIds containsObject:contact.recordID]) { + contact.rowSelected = YES; + } else { + contact.rowSelected = NO; + } contact.lastName = (NSString*)abLastName; contact.firstName = (NSString*)abName; @@ -305,8 +313,8 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setFrame:CGRectMake(30.0, 0.0, 28, 28)]; - [button setBackgroundImage:[UIImage imageNamed:@"uncheckBox.png"] forState:UIControlStateNormal]; - [button setBackgroundImage:[UIImage imageNamed:@"checkBox.png"] forState:UIControlStateSelected]; + [button setBackgroundImage:[UIImage imageNamed:@"LIST_NOT_SELECTED.png"] forState:UIControlStateNormal]; + [button setBackgroundImage:[UIImage imageNamed:@"LIST_SELECTED.png"] forState:UIControlStateSelected]; [button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside]; [button setSelected:contact.rowSelected]; diff --git a/TKContactPicker/Controllers/TKPeoplePickerController.h b/TKContactPicker/Controllers/TKPeoplePickerController.h index e6117c4..fc84adb 100755 --- a/TKContactPicker/Controllers/TKPeoplePickerController.h +++ b/TKContactPicker/Controllers/TKPeoplePickerController.h @@ -23,7 +23,8 @@ @property (nonatomic, assign) id actionDelegate; @property (nonatomic, retain) TKGroupPickerController *groupController; @property (nonatomic, retain) TKContactsMultiPickerController *contactController; +@property (nonatomic, retain) NSArray *preselectedContacts; -- (id)initPeoplePicker; +- (id)initPeoplePicker:(NSArray*)selectedContacts; @end diff --git a/TKContactPicker/Controllers/TKPeoplePickerController.m b/TKContactPicker/Controllers/TKPeoplePickerController.m index cb6424b..0f2d5b8 100755 --- a/TKContactPicker/Controllers/TKPeoplePickerController.m +++ b/TKContactPicker/Controllers/TKPeoplePickerController.m @@ -21,6 +21,7 @@ @implementation TKPeoplePickerController @synthesize actionDelegate = _actionDelegate; @synthesize groupController = _groupController; @synthesize contactController = _contactController; +@synthesize preselectedContacts; #pragma mark - #pragma mark External contacts changed callback @@ -48,13 +49,15 @@ - (void)presentContactsMultiPickerController TKContactsMultiPickerController *contactMultiController = [[TKContactsMultiPickerController alloc] initWithGroup:nil]; contactMultiController.delegate = self; + contactMultiController.preselectedContacts = self.preselectedContacts; [self pushViewController:contactMultiController animated:NO]; self.contactController = contactMultiController; [contactMultiController release]; } -- (id)initPeoplePicker +- (id)initPeoplePicker:(NSArray*)selectedContacts { + self.preselectedContacts = [NSArray arrayWithArray:selectedContacts]; self.groupController = [[[TKGroupPickerController alloc] initWithNibName:NSStringFromClass([TKGroupPickerController class]) bundle:nil] autorelease]; self.groupController.delegate = self; self = [super initWithRootViewController:self.groupController];