Respond to CR.

// FREEBIE
pull/1/head
Matthew Chen 8 years ago
parent 60e0ddfb92
commit 332833da7b

@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
success:(void (^)(SignalRecipient *recipient))success
failure:(void (^)(NSError *error))failure;
// This asynchronously tries to verify whether or not group of possible
// This asynchronously tries to verify whether or not a group of possible
// contact ids correspond to service accounts.
//
// The failure callback is only invoked if the lookup fails. Otherwise,

@ -89,7 +89,7 @@ NS_ASSUME_NONNULL_BEGIN
for (NSString *identifier in matchedIds) {
[recipients addObject:[SignalRecipient recipientWithTextSecureIdentifier:identifier]];
}
success(recipients);
success([recipients copy]);
} else {
failure(OWSErrorMakeNoSuchSignalRecipientError());
}

@ -33,8 +33,8 @@
// number.
//
// Order matters; better results will appear first.
+ (NSArray *)tryParsePhoneNumbersFromsUserSpecifiedText:(NSString *)text
clientPhoneNumber:(NSString *)clientPhoneNumber;
+ (NSArray<PhoneNumber *> *)tryParsePhoneNumbersFromsUserSpecifiedText:(NSString *)text
clientPhoneNumber:(NSString *)clientPhoneNumber;
+ (NSString *)removeFormattingCharacters:(NSString *)inputString;
+ (NSString *)bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber:(NSString *)input;

@ -13,8 +13,8 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
@implementation PhoneNumber
+ (PhoneNumber *)phoneNumberFromText:(NSString *)text andRegion:(NSString *)regionCode {
assert(text != nil);
assert(regionCode != nil);
OWSAssert(text != nil);
OWSAssert(regionCode != nil);
NBPhoneNumberUtil *phoneUtil = [PhoneNumberUtil sharedUtil].nbPhoneNumberUtil;
@ -40,7 +40,7 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
}
+ (PhoneNumber *)phoneNumberFromUserSpecifiedText:(NSString *)text {
assert(text != nil);
OWSAssert(text != nil);
return [PhoneNumber phoneNumberFromText:text andRegion:[self defaultRegionCode]];
}
@ -60,11 +60,11 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
}
+ (PhoneNumber *)phoneNumberFromE164:(NSString *)text {
assert(text != nil);
assert([text hasPrefix:COUNTRY_CODE_PREFIX]);
OWSAssert(text != nil);
OWSAssert([text hasPrefix:COUNTRY_CODE_PREFIX]);
PhoneNumber *number = [PhoneNumber phoneNumberFromText:text andRegion:@"ZZ"];
assert(number != nil);
OWSAssert(number != nil);
return number;
}
@ -102,14 +102,14 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
+ (PhoneNumber *)tryParsePhoneNumberFromText:(NSString *)text fromRegion:(NSString *)regionCode {
assert(text != nil);
assert(regionCode != nil);
OWSAssert(text != nil);
OWSAssert(regionCode != nil);
return [self phoneNumberFromText:text andRegion:regionCode];
}
+ (PhoneNumber *)tryParsePhoneNumberFromUserSpecifiedText:(NSString *)text {
assert(text != nil);
OWSAssert(text != nil);
if ([text isEqualToString:@""]) {
return nil;
@ -119,26 +119,26 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
return [self phoneNumberFromUserSpecifiedText:sanitizedString];
}
+ (NSArray *)tryParsePhoneNumbersFromsUserSpecifiedText:(NSString *)text
clientPhoneNumber:(NSString *)clientPhoneNumber {
assert(text != nil);
+ (NSArray<PhoneNumber *> *)tryParsePhoneNumbersFromsUserSpecifiedText:(NSString *)text
clientPhoneNumber:(NSString *)clientPhoneNumber
{
OWSAssert(text != nil);
text = [text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
if ([text isEqualToString:@""]) {
return nil;
}
NSString *sanitizedString = [self removeFormattingCharacters:text];
assert(sanitizedString != nil);
OWSAssert(sanitizedString != nil);
NSMutableArray *result = [NSMutableArray new];
NSMutableSet *phoneNumberSet = [NSMutableSet new];
void (^tryParsingWithCountryCode)(NSString *, NSString *) = ^(NSString *text,
NSString *countryCode) {
PhoneNumber *phoneNumber = [PhoneNumber phoneNumberFromText:text
andRegion:countryCode];
if (phoneNumber &&
![phoneNumberSet containsObject:[phoneNumber toE164]]) {
if (phoneNumber && [phoneNumber toE164] && ![phoneNumberSet containsObject:[phoneNumber toE164]]) {
[result addObject:phoneNumber];
[phoneNumberSet addObject:[phoneNumber toE164]];
}
@ -151,8 +151,9 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
return result;
}
// Order matters; better results should appear first so
// prefer matches using this client's phone number.
// Order matters; better results should appear first so prefer
// matches with the same country code as this client's phone number.
OWSAssert(clientPhoneNumber.length > 0);
if (clientPhoneNumber.length > 0) {
NSNumber *callingCodeForLocalNumber = [[PhoneNumber phoneNumberFromE164:clientPhoneNumber] getCountryCode];
if (callingCodeForLocalNumber != nil) {
@ -161,7 +162,7 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
sanitizedString],
[self defaultRegionCode]);
if ([sanitizedString hasPrefix:callingCodeForLocalNumber.description]) {
if ([sanitizedString hasPrefix:[NSString stringWithFormat:@"%d", callingCodeForLocalNumber.intValue]]) {
// If the text starts with the calling code for the local number, try
// just adding "+" and parsing it.
tryParsingWithCountryCode(
@ -204,7 +205,7 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN
}
+ (PhoneNumber *)tryParsePhoneNumberFromE164:(NSString *)text {
assert(text != nil);
OWSAssert(text != nil);
return [self phoneNumberFromE164:text];
}

Loading…
Cancel
Save