From 038ca0d6a99620a7772f97206799f807b6705626 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Sat, 14 Oct 2017 12:18:10 -0400 Subject: [PATCH] Fix invite via SMS in search - whispersystems.org -> signal.org - nav color was wrong since iOS10 - update search results after clearing post SMS invite // FREEBIE --- Signal/src/ViewControllers/InviteFlow.swift | 40 ++++++++++--------- .../NewContactThreadViewController.m | 18 ++++----- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Signal/src/ViewControllers/InviteFlow.swift b/Signal/src/ViewControllers/InviteFlow.swift index 50eb09603..aacf720ae 100644 --- a/Signal/src/ViewControllers/InviteFlow.swift +++ b/Signal/src/ViewControllers/InviteFlow.swift @@ -16,7 +16,7 @@ class InviteFlow: NSObject, MFMessageComposeViewControllerDelegate, MFMailCompos let TAG = "[ShareActions]" let installUrl = "https://signal.org/install/" - let homepageUrl = "https://whispersystems.org" + let homepageUrl = "https://signal.org" let actionSheetController: UIAlertController let presentingViewController: UIViewController @@ -98,7 +98,7 @@ class InviteFlow: NSObject, MFMessageComposeViewControllerDelegate, MFMailCompos switch inviteChannel { case .message: let phoneNumbers: [String] = contacts.map { $0.userTextPhoneNumbers.first }.filter { $0 != nil }.map { $0! } - sendSMSTo(phoneNumbers: phoneNumbers) + dismissAndSendSMSTo(phoneNumbers: phoneNumbers) case .mail: let recipients: [String] = contacts.map { $0.emails.first }.filter { $0 != nil }.map { $0! } sendMailTo(emails: recipients) @@ -144,26 +144,30 @@ class InviteFlow: NSObject, MFMessageComposeViewControllerDelegate, MFMailCompos } } - func sendSMSTo(phoneNumbers: [String]) { + public func dismissAndSendSMSTo(phoneNumbers: [String]) { self.presentingViewController.dismiss(animated: true) { - if #available(iOS 10.0, *) { - // iOS10 message compose view doesn't respect some system appearence attributes. - // Specifically, the title is white, but the navbar is gray. - // So, we have to set system appearence before init'ing the message compose view controller in order - // to make its colors legible. - // Then we have to be sure to set it back in the ComposeViewControllerDelegate callback. - UIUtil.applyDefaultSystemAppearence() - } - let messageComposeViewController = MFMessageComposeViewController() - messageComposeViewController.messageComposeDelegate = self - messageComposeViewController.recipients = phoneNumbers - - let inviteText = NSLocalizedString("SMS_INVITE_BODY", comment:"body sent to contacts when inviting to Install Signal") - messageComposeViewController.body = inviteText.appending(" \(self.installUrl)") - self.presentingViewController.navigationController?.present(messageComposeViewController, animated:true) + self.sendSMSTo(phoneNumbers: phoneNumbers) } } + public func sendSMSTo(phoneNumbers: [String]) { + if #available(iOS 10.0, *) { + // iOS10 message compose view doesn't respect some system appearence attributes. + // Specifically, the title is white, but the navbar is gray. + // So, we have to set system appearence before init'ing the message compose view controller in order + // to make its colors legible. + // Then we have to be sure to set it back in the ComposeViewControllerDelegate callback. + UIUtil.applyDefaultSystemAppearence() + } + let messageComposeViewController = MFMessageComposeViewController() + messageComposeViewController.messageComposeDelegate = self + messageComposeViewController.recipients = phoneNumbers + + let inviteText = NSLocalizedString("SMS_INVITE_BODY", comment:"body sent to contacts when inviting to Install Signal") + messageComposeViewController.body = inviteText.appending(" \(self.installUrl)") + self.presentingViewController.navigationController?.present(messageComposeViewController, animated:true) + } + // MARK: MessageComposeViewControllerDelegate func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { diff --git a/Signal/src/ViewControllers/NewContactThreadViewController.m b/Signal/src/ViewControllers/NewContactThreadViewController.m index 3663ca490..8bc1fa110 100644 --- a/Signal/src/ViewControllers/NewContactThreadViewController.m +++ b/Signal/src/ViewControllers/NewContactThreadViewController.m @@ -722,6 +722,11 @@ NS_ASSUME_NONNULL_BEGIN - (void)sendTextToPhoneNumber:(NSString *)phoneNumber { + + OWSInviteFlow *inviteFlow = + [[OWSInviteFlow alloc] initWithPresentingViewController:self + contactsManager:self.contactsViewHelper.contactsManager]; + OWSAssert([phoneNumber length] > 0); NSString *confirmMessage = NSLocalizedString(@"SEND_SMS_CONFIRM_TITLE", @""); if ([phoneNumber length] > 0) { @@ -739,18 +744,8 @@ NS_ASSUME_NONNULL_BEGIN style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { [self.searchBar resignFirstResponder]; - if ([MFMessageComposeViewController canSendText]) { - MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; - picker.messageComposeDelegate = self; - - picker.recipients = @[ - phoneNumber, - ]; - picker.body = [NSLocalizedString(@"SMS_INVITE_BODY", @"") - stringByAppendingString: - @" https://itunes.apple.com/us/app/signal-private-messenger/id874139669?mt=8"]; - [self presentViewController:picker animated:YES completion:[UIUtil modalCompletionBlock]]; + [inviteFlow sendSMSToPhoneNumbers:@[ phoneNumber ]]; } else { [OWSAlerts showAlertWithTitle:NSLocalizedString(@"ALERT_ERROR_TITLE", @"") message:NSLocalizedString(@"UNSUPPORTED_FEATURE_ERROR", @"")]; @@ -760,6 +755,7 @@ NS_ASSUME_NONNULL_BEGIN [alertController addAction:[OWSAlerts cancelAction]]; [alertController addAction:okAction]; self.searchBar.text = @""; + [self searchTextDidChange]; // must dismiss search controller before presenting alert. if ([self presentedViewController]) {