diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index 91c45177b..816087c66 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -3226,15 +3226,13 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) { #pragma mark GifPickerViewControllerDelegate -- (void)gifPickerWillSend +- (void)gifPickerDidSelectWithAttachment:(SignalAttachment *)attachment { - [ThreadUtil addThreadToProfileWhitelistIfEmptyContactThread:self.thread]; -} + OWSAssert(attachment); -- (void)gifPickerDidSendWithOutgoingMessage:(TSOutgoingMessage *)message -{ - [self messageWasSent:message]; + [self tryToSendAttachmentIfApproved:attachment]; + [ThreadUtil addThreadToProfileWhitelistIfEmptyContactThread:self.thread]; [self ensureDynamicInteractions]; } diff --git a/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift b/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift index 31d7f6e63..606f462f5 100644 --- a/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift +++ b/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift @@ -6,8 +6,7 @@ import Foundation @objc protocol GifPickerViewControllerDelegate: class { - func gifPickerWillSend() - func gifPickerDidSend(outgoingMessage: TSOutgoingMessage) + func gifPickerDidSelect(attachment: SignalAttachment) } class GifPickerViewController: OWSViewController, UISearchBarDelegate, UICollectionViewDataSource, UICollectionViewDelegate, GifPickerLayoutDelegate { @@ -363,13 +362,9 @@ class GifPickerViewController: OWSViewController, UISearchBarDelegate, UICollect } let attachment = SignalAttachment(dataSource: dataSource, dataUTI: asset.rendition.utiType) - strongSelf.delegate?.gifPickerWillSend() - - let outgoingMessage = ThreadUtil.sendMessage(with: attachment, in: strongSelf.thread, messageSender: strongSelf.messageSender) - - strongSelf.delegate?.gifPickerDidSend(outgoingMessage: outgoingMessage) - - strongSelf.dismiss(animated: true, completion: nil) + strongSelf.dismiss(animated: true, completion: { + strongSelf.delegate?.gifPickerDidSelect(attachment: attachment) + }) }.catch { [weak self] error in guard let strongSelf = self else { Logger.info("\(GifPickerViewController.TAG) ignoring failure, since VC was dismissed before fetching finished.")