[SSK] Try applying national prefixes when parsing phone numbers.

// FREEBIE
This commit is contained in:
Matthew Chen 2017-07-13 12:59:35 -04:00
parent 3db5c777c2
commit 03aacbd682
2 changed files with 9 additions and 3 deletions

View File

@ -376,11 +376,17 @@ NSString *const kSelectRecipientViewControllerCellIdentifier = @"kSelectRecipien
}
NSString *possiblePhoneNumber =
[self.callingCode stringByAppendingString:self.phoneNumberTextField.text.digitsOnly];
PhoneNumber *parsedPhoneNumber = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:possiblePhoneNumber];
NSArray<PhoneNumber *> *parsePhoneNumbers =
[PhoneNumber tryParsePhoneNumbersFromsUserSpecifiedText:possiblePhoneNumber
clientPhoneNumber:[TSAccountManager localNumber]];
if (parsePhoneNumbers.count < 1) {
return NO;
}
PhoneNumber *parsedPhoneNumber = parsePhoneNumbers[0];
// It'd be nice to use [PhoneNumber isValid] but it always returns false for some countries
// (like afghanistan) and there doesn't seem to be a good way to determine beforehand
// which countries it can validate for without forking libPhoneNumber.
return parsedPhoneNumber && parsedPhoneNumber.toE164.length > 1;
return parsedPhoneNumber.toE164.length > 1;
}
- (void)updatePhoneNumberButtonEnabling

View File

@ -26,7 +26,7 @@ import Foundation
public func initiateCall(handle: String) -> Bool {
Logger.info("\(TAG) in \(#function) with handle: \(handle)")
guard let recipientId = PhoneNumber(fromUserSpecifiedText: handle)?.toE164() else {
guard let recipientId = PhoneNumber(fromE164: handle)?.toE164() else {
Logger.warn("\(TAG) unable to parse signalId from phone number: \(handle)")
return false
}