|
|
@ -174,14 +174,19 @@ void onAddressBookChanged(ABAddressBookRef notifyAddressBook, CFDictionaryRef in
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
-(NSArray*) getContactsFromAddressBook:(ABAddressBookRef)addressBook {
|
|
|
|
-(NSArray*) getContactsFromAddressBook:(ABAddressBookRef)addressBook {
|
|
|
|
ABRecordRef source = ABAddressBookCopyDefaultSource(addressBook);
|
|
|
|
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
|
|
|
|
|
|
|
|
CFMutableArrayRef allPeopleMutable = CFArrayCreateMutableCopy(kCFAllocatorDefault,
|
|
|
|
NSArray *allPeople = (__bridge_transfer NSArray *)
|
|
|
|
CFArrayGetCount(allPeople),allPeople);
|
|
|
|
(ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook,
|
|
|
|
|
|
|
|
source,
|
|
|
|
CFArraySortValues(allPeopleMutable,CFRangeMake(0, CFArrayGetCount(allPeopleMutable)),
|
|
|
|
kABPersonSortByFirstName));
|
|
|
|
(CFComparatorFunction)ABPersonComparePeopleByName,
|
|
|
|
|
|
|
|
(void*)(unsigned long)ABPersonGetSortOrdering());
|
|
|
|
return [allPeople map:^id(id item) {
|
|
|
|
|
|
|
|
|
|
|
|
NSArray *sortedPeople = (__bridge_transfer NSArray *)allPeopleMutable;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CFRelease(allPeople);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return [sortedPeople map:^id(id item) {
|
|
|
|
return [self contactForRecord:(__bridge ABRecordRef)item];
|
|
|
|
return [self contactForRecord:(__bridge ABRecordRef)item];
|
|
|
|
}];
|
|
|
|
}];
|
|
|
|
}
|
|
|
|
}
|
|
|
|