remove toE164 method from PhoneNumber
This commit is contained in:
parent
fc350cb88a
commit
99cb4b5ebe
@ -117,7 +117,7 @@ final class CallKitCallManager {
|
||||
let phoneNumbers = phoneNumberUtil.parsePhoneNumbers(
|
||||
userSpecifiedText: handle, localPhoneNumber: localNumber
|
||||
)
|
||||
return phoneNumbers.first?.toE164()
|
||||
return phoneNumbers.first?.e164
|
||||
}()
|
||||
if let phoneNumber {
|
||||
let address = SignalServiceAddress(phoneNumber: phoneNumber)
|
||||
|
||||
@ -250,7 +250,7 @@ extension ConversationViewController {
|
||||
guard
|
||||
let snippet = dataItem.snippet.strippedOrNil,
|
||||
let phoneNumberObj = phoneNumberUtil.parsePhoneNumber(userSpecifiedText: snippet),
|
||||
let phoneNumber = phoneNumberObj.toE164().strippedOrNil
|
||||
let phoneNumber = phoneNumberObj.e164.strippedOrNil
|
||||
else {
|
||||
owsFailDebug("Invalid phone number.")
|
||||
UIApplication.shared.open(dataItem.url, options: [:], completionHandler: nil)
|
||||
|
||||
@ -31,15 +31,13 @@ public class PhoneNumberValidator: NSObject {
|
||||
}
|
||||
}
|
||||
|
||||
let validBrazilPhoneNumberRegex = try! NSRegularExpression(pattern: "^\\+55\\d{2}9?\\d{8}$", options: [])
|
||||
private let validBrazilPhoneNumberRegex = try! NSRegularExpression(pattern: "^\\+55\\d{2}9?\\d{8}$", options: [])
|
||||
private func isValidForBrazilRegistration(phoneNumber: PhoneNumber) -> Bool {
|
||||
let e164 = phoneNumber.toE164()
|
||||
return validBrazilPhoneNumberRegex.hasMatch(input: e164)
|
||||
validBrazilPhoneNumberRegex.hasMatch(input: phoneNumber.e164)
|
||||
}
|
||||
|
||||
let validUnitedStatesPhoneNumberRegex = try! NSRegularExpression(pattern: "^\\+1\\d{10}$", options: [])
|
||||
private let validUnitedStatesPhoneNumberRegex = try! NSRegularExpression(pattern: "^\\+1\\d{10}$", options: [])
|
||||
private func isValidForUnitedStatesRegistration(phoneNumber: PhoneNumber) -> Bool {
|
||||
let e164 = phoneNumber.toE164()
|
||||
return validUnitedStatesPhoneNumberRegex.hasMatch(input: e164)
|
||||
validUnitedStatesPhoneNumberRegex.hasMatch(input: phoneNumber.e164)
|
||||
}
|
||||
}
|
||||
|
||||
@ -440,7 +440,7 @@ private class ChangePhoneNumberValueViews: NSObject {
|
||||
userSpecifiedText: phoneNumberWithoutCallingCode,
|
||||
callingCode: callingCode
|
||||
),
|
||||
let e164String = phoneNumber.toE164().strippedOrNil,
|
||||
let e164String = phoneNumber.e164.strippedOrNil,
|
||||
let e164 = E164(e164String),
|
||||
PhoneNumberValidator().isValidForRegistration(phoneNumber: phoneNumber)
|
||||
else {
|
||||
|
||||
@ -229,8 +229,7 @@ extension RegistrationPhoneNumberInputView: UITextFieldDelegate {
|
||||
}
|
||||
|
||||
private func formatNationalNumber(input: String) -> String {
|
||||
return PhoneNumber.bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber(
|
||||
input, countryCodeString: countryState.callingCode)
|
||||
return PhoneNumber.bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber(input, countryCodeString: countryState.callingCode)
|
||||
}
|
||||
}
|
||||
|
||||
@ -243,8 +242,7 @@ extension RegistrationPhoneNumberInputView: CountryCodeViewControllerDelegate {
|
||||
) {
|
||||
countryState = newCountryState
|
||||
|
||||
nationalNumberView.text = PhoneNumber.bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber(
|
||||
nationalNumber, countryCodeString: countryState.callingCode)
|
||||
nationalNumberView.text = PhoneNumber.bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber(nationalNumber, countryCodeString: countryState.callingCode)
|
||||
|
||||
delegate?.didChange()
|
||||
}
|
||||
|
||||
@ -357,7 +357,7 @@ class DeleteAccountConfirmationViewController: OWSTableViewController2 {
|
||||
let possibleNumbers = phoneNumberUtil.parsePhoneNumbers(
|
||||
userSpecifiedText: possiblePhoneNumber,
|
||||
localPhoneNumber: localNumber
|
||||
).map { $0.toE164() }
|
||||
).map(\.e164)
|
||||
|
||||
return possibleNumbers.contains(localNumber)
|
||||
}
|
||||
|
||||
@ -1340,7 +1340,7 @@ class DebugUIMessages: DebugUIPage, Dependencies {
|
||||
await DebugContactsUtils.createRandomContacts(threadQuantity) { contact, index, stop in
|
||||
guard
|
||||
let phoneNumberText = contact.phoneNumbers.first?.value.stringValue,
|
||||
let e164 = phoneNumberUtil.parsePhoneNumber(userSpecifiedText: phoneNumberText)?.toE164()
|
||||
let e164 = phoneNumberUtil.parsePhoneNumber(userSpecifiedText: phoneNumberText)?.e164
|
||||
else {
|
||||
owsFailDebug("Invalid phone number")
|
||||
return
|
||||
|
||||
@ -114,7 +114,7 @@ public struct FetchedSystemContacts {
|
||||
)
|
||||
var results = [CanonicalPhoneNumber]()
|
||||
for phoneNumberObj in phoneNumbers {
|
||||
guard let phoneNumber = E164(phoneNumberObj.toE164()) else {
|
||||
guard let phoneNumber = E164(phoneNumberObj.e164) else {
|
||||
owsFailDebug("Couldn't convert parsed phone number to E164")
|
||||
continue
|
||||
}
|
||||
|
||||
@ -42,11 +42,6 @@ public class PhoneNumber: NSObject, NSCoding, Comparable {
|
||||
coder.encode(e164, forKey: rpDefaultsKeyPhoneNumberCanonical)
|
||||
}
|
||||
|
||||
// TODO: Remove this and use the property directly
|
||||
public func toE164() -> String {
|
||||
e164
|
||||
}
|
||||
|
||||
public func getCallingCode() -> NSNumber? {
|
||||
nbPhoneNumber.countryCode
|
||||
}
|
||||
@ -66,6 +61,8 @@ public class PhoneNumber: NSObject, NSCoding, Comparable {
|
||||
return e164 == otherPhoneNumber.e164
|
||||
}
|
||||
|
||||
public override var hash: Int { e164.hash }
|
||||
|
||||
public static func < (_ lhs: PhoneNumber, _ rhs: PhoneNumber) -> Bool {
|
||||
lhs.compare(rhs) == .orderedAscending
|
||||
}
|
||||
@ -108,10 +105,9 @@ public class PhoneNumber: NSObject, NSCoding, Comparable {
|
||||
}
|
||||
|
||||
private static func regionCode(from countryCodeString: String) -> String {
|
||||
let index = countryCodeString.index(after: countryCodeString.startIndex)
|
||||
// Int(String) could be used here except it doesn't skip whitespace and so would be a change
|
||||
// from the objc NSString.integerValue behavior...
|
||||
let countryCallingCode = (countryCodeString[index...] as NSString).integerValue
|
||||
let countryCallingCode = (countryCodeString.dropFirst() as NSString).integerValue
|
||||
return phoneNumberUtil.getRegionCodeForCountryCode(NSNumber(value: countryCallingCode))
|
||||
}
|
||||
}
|
||||
|
||||
@ -437,7 +437,7 @@ extension PhoneNumberUtil {
|
||||
guard let phoneNumber = parsePhoneNumber(text, regionCode: countryCode) else {
|
||||
return
|
||||
}
|
||||
guard phoneNumbers.insert(phoneNumber.toE164()).inserted else {
|
||||
guard phoneNumbers.insert(phoneNumber.e164).inserted else {
|
||||
return
|
||||
}
|
||||
results.append(phoneNumber)
|
||||
|
||||
@ -189,10 +189,10 @@ public class OWSContact: MTLModel {
|
||||
|
||||
let e164PhoneNumbers: [String] = phoneNumbers.compactMap { phoneNumber in
|
||||
if let parsedPhoneNumber = phoneNumberUtil.parseE164(phoneNumber.phoneNumber) {
|
||||
return parsedPhoneNumber.toE164()
|
||||
return parsedPhoneNumber.e164
|
||||
}
|
||||
if let parsedPhoneNumber = phoneNumberUtil.parsePhoneNumber(userSpecifiedText: phoneNumber.phoneNumber) {
|
||||
return parsedPhoneNumber.toE164()
|
||||
return parsedPhoneNumber.e164
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ public class OWSContactPhoneNumber: MTLModel, OWSContactField {
|
||||
if parsedPhoneNumber == nil {
|
||||
parsedPhoneNumber = phoneNumberUtil.parsePhoneNumber(userSpecifiedText: phoneNumber)
|
||||
}
|
||||
return parsedPhoneNumber?.toE164()
|
||||
return parsedPhoneNumber?.e164
|
||||
}
|
||||
|
||||
// MARK: OWSContactField
|
||||
@ -101,10 +101,10 @@ extension OWSContactPhoneNumber {
|
||||
let unparsedPhoneNumber = cnLabeledValue.value.stringValue
|
||||
let parsedPhoneNumber: String = {
|
||||
if let phoneNumber = Self.phoneNumberUtil.parseE164(unparsedPhoneNumber) {
|
||||
return phoneNumber.toE164()
|
||||
return phoneNumber.e164
|
||||
}
|
||||
if let phoneNumber = Self.phoneNumberUtil.parsePhoneNumber(userSpecifiedText: unparsedPhoneNumber) {
|
||||
return phoneNumber.toE164()
|
||||
return phoneNumber.e164
|
||||
}
|
||||
return unparsedPhoneNumber
|
||||
}()
|
||||
|
||||
@ -23,7 +23,7 @@ class PhoneNumberTest: XCTestCase {
|
||||
|
||||
let shouldNotBeNil: [String] = ["+19025550123", "+33170393800"]
|
||||
for input in shouldNotBeNil {
|
||||
XCTAssertEqual(phoneNumberUtilRef.parseE164(input)?.toE164(), input, input)
|
||||
XCTAssertEqual(phoneNumberUtilRef.parseE164(input)?.e164, input, input)
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,22 +52,22 @@ class PhoneNumberTest: XCTestCase {
|
||||
("", nil),
|
||||
]
|
||||
for (inputValue, expectedValue) in testCases {
|
||||
let actualValue = phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: inputValue)?.toE164()
|
||||
let actualValue = phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: inputValue)?.e164
|
||||
XCTAssertEqual(actualValue, expectedValue, inputValue)
|
||||
}
|
||||
}
|
||||
|
||||
func testTryParsePhoneNumberWithCallingCode() {
|
||||
XCTAssertEqual(
|
||||
phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: "18085550101", callingCode: "1")?.toE164(),
|
||||
phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: "18085550101", callingCode: "1")?.e164,
|
||||
"+18085550101"
|
||||
)
|
||||
XCTAssertEqual(
|
||||
phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: "61255504321", callingCode: "61")?.toE164(),
|
||||
phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: "61255504321", callingCode: "61")?.e164,
|
||||
"+61255504321"
|
||||
)
|
||||
XCTAssertEqual(
|
||||
phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: "493083050", callingCode: "49")?.toE164(),
|
||||
phoneNumberUtilRef.parsePhoneNumber(userSpecifiedText: "493083050", callingCode: "49")?.e164,
|
||||
"+493083050"
|
||||
)
|
||||
}
|
||||
@ -97,7 +97,7 @@ class PhoneNumberTest: XCTestCase {
|
||||
]
|
||||
for inputValue in inputValues {
|
||||
let phoneNumbers = phoneNumberUtilRef.parsePhoneNumbers(userSpecifiedText: inputValue, localPhoneNumber: "+13213214321")
|
||||
XCTAssertEqual(phoneNumbers.first?.toE164(), expectedValue, inputValue)
|
||||
XCTAssertEqual(phoneNumbers.first?.e164, expectedValue, inputValue)
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ class PhoneNumberTest: XCTestCase {
|
||||
localPhoneNumber: localNumber
|
||||
)
|
||||
XCTAssertEqual(
|
||||
phoneNumbers.contains(where: { $0.toE164() == testCase.expectedValue }),
|
||||
phoneNumbers.contains(where: { $0.e164 == testCase.expectedValue }),
|
||||
testCase.isExpected,
|
||||
testCase.inputValue
|
||||
)
|
||||
@ -152,7 +152,7 @@ class PhoneNumberTest: XCTestCase {
|
||||
localPhoneNumber: localNumber
|
||||
)
|
||||
XCTAssertEqual(
|
||||
phoneNumbers.contains(where: { $0.toE164() == testCase.expectedValue }),
|
||||
phoneNumbers.contains(where: { $0.e164 == testCase.expectedValue }),
|
||||
testCase.isExpected,
|
||||
testCase.inputValue
|
||||
)
|
||||
|
||||
@ -208,7 +208,7 @@ public class FindByPhoneNumberViewController: OWSTableViewController2 {
|
||||
userSpecifiedText: callingCode + userSpecifiedText,
|
||||
localPhoneNumber: localNumber
|
||||
)
|
||||
let possibleValidPhoneNumbers = possiblePhoneNumbers.map { $0.toE164() }.filter { !$0.isEmpty }
|
||||
let possibleValidPhoneNumbers = possiblePhoneNumbers.map { $0.e164 }.filter { !$0.isEmpty }
|
||||
|
||||
// There should only be one phone number, since we're explicitly specifying
|
||||
// a country code and therefore parsing a number in e164 format.
|
||||
|
||||
@ -1235,7 +1235,7 @@ struct PhoneNumberFinder {
|
||||
}
|
||||
|
||||
private func validE164(from phoneNumber: PhoneNumber) -> String? {
|
||||
return E164(phoneNumber.toE164())?.stringValue
|
||||
return E164(phoneNumber.e164)?.stringValue
|
||||
}
|
||||
|
||||
enum LookupResult {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user