diff --git a/Signal/src/ViewControllers/ContactViewController.swift b/Signal/src/ViewControllers/ContactViewController.swift index b0cd6a4aa..4493b5778 100644 --- a/Signal/src/ViewControllers/ContactViewController.swift +++ b/Signal/src/ViewControllers/ContactViewController.swift @@ -103,6 +103,7 @@ class ContactViewController: OWSViewController, CNContactViewControllerDelegate UIUtil.applySignalAppearence() if let navigationController = self.navigationController { + owsFail("\(logTag) missing navigationController") navigationController.isNavigationBarHidden = true } @@ -122,6 +123,7 @@ class ContactViewController: OWSViewController, CNContactViewControllerDelegate super.viewWillDisappear(animated) if let navigationController = self.navigationController { + owsFail("\(logTag) missing navigationController") navigationController.isNavigationBarHidden = false } } @@ -253,8 +255,11 @@ class ContactViewController: OWSViewController, CNContactViewControllerDelegate backButton.autoPinLeadingToSuperviewMargin() let backIconName = (self.view.isRTL() ? "system_disclosure_indicator" : "system_disclosure_indicator_rtl") - let backIconImage = UIImage(named: backIconName)?.withRenderingMode(.alwaysTemplate) - let backIconView = UIImageView(image: backIconImage) + guard let backIconImage = UIImage(named: backIconName) else { + owsFail("\(logTag) missing icon.") + return topView + } + let backIconView = UIImageView(image: backIconImage.withRenderingMode(.alwaysTemplate)) backIconView.contentMode = .scaleAspectFit backIconView.tintColor = UIColor.black.withAlphaComponent(0.6) backButton.addSubview(backIconView) @@ -291,7 +296,7 @@ class ContactViewController: OWSViewController, CNContactViewControllerDelegate if let firstPhoneNumber = contact.phoneNumbers.first { let phoneNumberLabel = UILabel() - phoneNumberLabel.text = PhoneNumber.bestEffortFormatE164(asLocalizedPhoneNumber: firstPhoneNumber.phoneNumber) + phoneNumberLabel.text = PhoneNumber.bestEffortLocalizedPhoneNumber(withE164: firstPhoneNumber.phoneNumber) phoneNumberLabel.font = UIFont.ows_dynamicTypeCaption2 phoneNumberLabel.textColor = UIColor.black phoneNumberLabel.lineBreakMode = .byTruncatingTail @@ -423,7 +428,7 @@ class ContactViewController: OWSViewController, CNContactViewControllerDelegate // } for phoneNumber in contact.phoneNumbers { - let formattedPhoneNumber = PhoneNumber.bestEffortFormatE164(asLocalizedPhoneNumber: phoneNumber.phoneNumber) + let formattedPhoneNumber = PhoneNumber.bestEffortLocalizedPhoneNumber(withE164: phoneNumber.phoneNumber) addRow(createNameValueRow(name: phoneNumber.localizedLabel(), value: formattedPhoneNumber, @@ -494,9 +499,7 @@ class ContactViewController: OWSViewController, CNContactViewControllerDelegate nameLabel.autoPinTrailingToSuperviewMargin(withInset: hMargin) let valueLabel = UILabel() - if let value = value { - valueLabel.text = value - } + valueLabel.text = value valueLabel.font = UIFont.ows_dynamicTypeCaption1 valueLabel.textColor = UIColor.ows_materialBlue valueLabel.lineBreakMode = .byTruncatingTail @@ -654,7 +657,7 @@ class ContactViewController: OWSViewController, CNContactViewControllerDelegate let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) for phoneNumber in phoneNumbers { - actionSheet.addAction(UIAlertAction(title: PhoneNumber.bestEffortFormatE164(asLocalizedPhoneNumber: phoneNumber), + actionSheet.addAction(UIAlertAction(title: PhoneNumber.bestEffortLocalizedPhoneNumber(withE164: phoneNumber), style: .default) { _ in completion(phoneNumber) }) diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m index 8dcb55b3a..f56f63bb5 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSContactShareView.m @@ -136,7 +136,7 @@ NS_ASSUME_NONNULL_BEGIN NSString *_Nullable firstPhoneNumber = self.contactShare.phoneNumbers.firstObject.phoneNumber; if (firstPhoneNumber.length > 0) { UILabel *bottomLabel = [UILabel new]; - bottomLabel.text = [PhoneNumber bestEffortFormatE164AsLocalizedPhoneNumber:firstPhoneNumber]; + bottomLabel.text = [PhoneNumber bestEffortLocalizedPhoneNumberWithE164:firstPhoneNumber]; // TODO: bottomLabel.textColor = [UIColor ows_darkGrayColor]; bottomLabel.lineBreakMode = NSLineBreakByTruncatingTail; diff --git a/Signal/src/views/ReminderView.swift b/Signal/src/views/ReminderView.swift index 40a2f86e2..7102d3ce9 100644 --- a/Signal/src/views/ReminderView.swift +++ b/Signal/src/views/ReminderView.swift @@ -110,8 +110,11 @@ class ReminderView: UIView { // Icon let iconName = (self.isRTL() ? "system_disclosure_indicator_rtl" : "system_disclosure_indicator") - let iconImage = UIImage(named: iconName)?.withRenderingMode(.alwaysTemplate) - let iconView = UIImageView(image: iconImage) + guard let iconImage = UIImage(named: iconName) else { + owsFail("\(logTag) missing icon.") + return + } + let iconView = UIImageView(image: iconImage.withRenderingMode(.alwaysTemplate)) iconView.contentMode = .scaleAspectFit iconView.tintColor = UIColor.black.withAlphaComponent(0.6) container.addSubview(iconView) diff --git a/SignalServiceKit/src/Contacts/PhoneNumber.h b/SignalServiceKit/src/Contacts/PhoneNumber.h index 72e0e2d71..7d89ad304 100644 --- a/SignalServiceKit/src/Contacts/PhoneNumber.h +++ b/SignalServiceKit/src/Contacts/PhoneNumber.h @@ -30,7 +30,7 @@ + (NSString *)bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber:(NSString *)input; + (NSString *)bestEffortFormatPartialUserSpecifiedTextToLookLikeAPhoneNumber:(NSString *)input withSpecifiedCountryCodeString:(NSString *)countryCodeString; -+ (NSString *)bestEffortFormatE164AsLocalizedPhoneNumber:(NSString *)phoneNumber; ++ (NSString *)bestEffortLocalizedPhoneNumberWithE164:(NSString *)phoneNumber; + (NSString *)regionCodeFromCountryCodeString:(NSString *)countryCodeString; diff --git a/SignalServiceKit/src/Contacts/PhoneNumber.m b/SignalServiceKit/src/Contacts/PhoneNumber.m index 770affee2..2eb0563a7 100644 --- a/SignalServiceKit/src/Contacts/PhoneNumber.m +++ b/SignalServiceKit/src/Contacts/PhoneNumber.m @@ -130,7 +130,7 @@ static NSString *const RPDefaultsKeyPhoneNumberCanonical = @"RPDefaultsKeyPhoneN return [formatter stringFromNumber:@(value)]; } -+ (NSString *)bestEffortFormatE164AsLocalizedPhoneNumber:(NSString *)phoneNumber ++ (NSString *)bestEffortLocalizedPhoneNumberWithE164:(NSString *)phoneNumber { OWSAssert(phoneNumber);