Merge pull request #196 from WhisperSystems/mkirk/contact-fixup

Properly handle "work", "home", and "other" labels
pull/1/head
Michael Kirk 8 years ago committed by GitHub
commit 77833e727a

@ -16,6 +16,9 @@ typedef NS_ENUM(NSUInteger, OWSPhoneNumberType) {
OWSPhoneNumberTypeWorkFAX, OWSPhoneNumberTypeWorkFAX,
OWSPhoneNumberTypeOtherFAX, OWSPhoneNumberTypeOtherFAX,
OWSPhoneNumberTypePager, OWSPhoneNumberTypePager,
OWSPhoneNumberTypeHome,
OWSPhoneNumberTypeWork,
OWSPhoneNumberTypeOther
}; };
/** /**

@ -72,10 +72,14 @@ NS_ASSUME_NONNULL_BEGIN
if ([phoneNumberField.value isKindOfClass:[CNPhoneNumber class]]) { if ([phoneNumberField.value isKindOfClass:[CNPhoneNumber class]]) {
CNPhoneNumber *phoneNumber = (CNPhoneNumber *)phoneNumberField.value; CNPhoneNumber *phoneNumber = (CNPhoneNumber *)phoneNumberField.value;
[phoneNumbers addObject:phoneNumber.stringValue]; [phoneNumbers addObject:phoneNumber.stringValue];
if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberMobile]) { if ([phoneNumberField.label isEqualToString:CNLabelHome]) {
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeMobile); phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeHome);
} else if ([phoneNumberField.label isEqualToString:CNLabelWork]) {
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeWork);
} else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberiPhone]) { } else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberiPhone]) {
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeIPhone); phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeIPhone);
} else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberMobile]) {
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeMobile);
} else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberMain]) { } else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberMain]) {
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeMain); phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeMain);
} else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberHomeFax]) { } else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberHomeFax]) {
@ -86,7 +90,13 @@ NS_ASSUME_NONNULL_BEGIN
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeOtherFAX); phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeOtherFAX);
} else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberPager]) { } else if ([phoneNumberField.label isEqualToString:CNLabelPhoneNumberPager]) {
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypePager); phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypePager);
} else if ([phoneNumberField.label isEqualToString:CNLabelOther]) {
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeOther);
} else { } else {
// TODO this should only be hit if the user has a custom label, which ideally we'd expose rather than
// unknown. I think the thing to do is to get rid of OWSPhoneNumberType*, and simply localize the label
// in this method - uising the custom label when available.
// Maybe that means adding a "label" to PhoneNumber class and parsing the numbers in this class.
phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeUnknown); phoneNumberTypeMap[phoneNumber.stringValue] = @(OWSPhoneNumberTypeUnknown);
} }
} }

Loading…
Cancel
Save