parent
a16040f19f
commit
7631315227
|
@ -160,21 +160,11 @@ NSString *NSStringForContactAddressType(OWSContactAddressType value);
|
|||
// TODO: Move to separate source file, rename to OWSContactConversion.
|
||||
@interface OWSContacts : NSObject
|
||||
|
||||
#pragma mark - VCard Serialization
|
||||
|
||||
+ (nullable CNContact *)systemContactForVCardData:(NSData *)data;
|
||||
+ (nullable NSData *)vCardDataForSystemContact:(CNContact *)systemContact;
|
||||
|
||||
#pragma mark - System Contact Conversion
|
||||
|
||||
+ (nullable OWSContact *)contactForSystemContact:(CNContact *)systemContact;
|
||||
+ (nullable CNContact *)systemContactForContact:(OWSContact *)contact imageData:(nullable NSData *)imageData;
|
||||
|
||||
#pragma mark -
|
||||
|
||||
+ (nullable OWSContact *)contactForVCardData:(NSData *)data;
|
||||
+ (nullable NSData *)vCardDataContact:(OWSContact *)contact;
|
||||
|
||||
#pragma mark - Proto Serialization
|
||||
|
||||
+ (nullable OWSSignalServiceProtosDataMessageContact *)protoForContact:(OWSContact *)contact;
|
||||
|
|
|
@ -556,48 +556,6 @@ NSString *NSStringForContactAddressType(OWSContactAddressType value)
|
|||
|
||||
@implementation OWSContacts
|
||||
|
||||
#pragma mark - VCard Serialization
|
||||
|
||||
+ (nullable CNContact *)systemContactForVCardData:(NSData *)data
|
||||
{
|
||||
OWSAssert(data);
|
||||
|
||||
NSError *error;
|
||||
NSArray<CNContact *> *_Nullable contacts = [CNContactVCardSerialization contactsWithData:data error:&error];
|
||||
if (!contacts || error) {
|
||||
OWSProdLogAndFail(@"%@ could not parse vcard: %@", self.logTag, error);
|
||||
return nil;
|
||||
}
|
||||
if (contacts.count < 1) {
|
||||
OWSProdLogAndFail(@"%@ empty vcard: %@", self.logTag, error);
|
||||
return nil;
|
||||
}
|
||||
if (contacts.count > 1) {
|
||||
OWSProdLogAndFail(@"%@ more than one contact in vcard: %@", self.logTag, error);
|
||||
}
|
||||
return contacts.firstObject;
|
||||
}
|
||||
|
||||
+ (nullable NSData *)vCardDataForSystemContact:(CNContact *)systemContact
|
||||
{
|
||||
OWSAssert(systemContact);
|
||||
|
||||
NSError *error;
|
||||
NSData *_Nullable data = [CNContactVCardSerialization dataWithContacts:@[
|
||||
systemContact,
|
||||
]
|
||||
error:&error];
|
||||
if (!data || error) {
|
||||
OWSProdLogAndFail(@"%@ could not serialize to vcard: %@", self.logTag, error);
|
||||
return nil;
|
||||
}
|
||||
if (data.length < 1) {
|
||||
OWSProdLogAndFail(@"%@ empty vcard data: %@", self.logTag, error);
|
||||
return nil;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
#pragma mark - System Contact Conversion
|
||||
|
||||
+ (nullable OWSContact *)contactForSystemContact:(CNContact *)systemContact
|
||||
|
@ -797,31 +755,6 @@ NSString *NSStringForContactAddressType(OWSContactAddressType value)
|
|||
return systemContact;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
+ (nullable OWSContact *)contactForVCardData:(NSData *)data
|
||||
{
|
||||
OWSAssert(data);
|
||||
|
||||
CNContact *_Nullable systemContact = [self systemContactForVCardData:data];
|
||||
if (!systemContact) {
|
||||
return nil;
|
||||
}
|
||||
return [self contactForSystemContact:systemContact];
|
||||
}
|
||||
|
||||
+ (nullable NSData *)vCardDataContact:(OWSContact *)contact
|
||||
{
|
||||
OWSAssert(contact);
|
||||
|
||||
// TODO pass in image for vcard
|
||||
CNContact *_Nullable systemContact = [self systemContactForContact:contact imageData:nil];
|
||||
if (!systemContact) {
|
||||
return nil;
|
||||
}
|
||||
return [self vCardDataForSystemContact:systemContact];
|
||||
}
|
||||
|
||||
#pragma mark - Proto Serialization
|
||||
|
||||
+ (nullable OWSSignalServiceProtosDataMessageContact *)protoForContact:(OWSContact *)contact
|
||||
|
|
Loading…
Reference in New Issue