diff --git a/Signal/src/ViewControllers/SelectRecipientViewController.m b/Signal/src/ViewControllers/SelectRecipientViewController.m index 9fbe046be..572f7c2ab 100644 --- a/Signal/src/ViewControllers/SelectRecipientViewController.m +++ b/Signal/src/ViewControllers/SelectRecipientViewController.m @@ -376,11 +376,17 @@ NSString *const kSelectRecipientViewControllerCellIdentifier = @"kSelectRecipien } NSString *possiblePhoneNumber = [self.callingCode stringByAppendingString:self.phoneNumberTextField.text.digitsOnly]; - PhoneNumber *parsedPhoneNumber = [PhoneNumber tryParsePhoneNumberFromUserSpecifiedText:possiblePhoneNumber]; + NSArray *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 diff --git a/Signal/src/call/OutboundCallInitiator.swift b/Signal/src/call/OutboundCallInitiator.swift index eb8358815..3b284ff05 100644 --- a/Signal/src/call/OutboundCallInitiator.swift +++ b/Signal/src/call/OutboundCallInitiator.swift @@ -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 }