@ -1281,14 +1281,28 @@ typedef enum : NSUInteger {
return ;
}
BOOL didShowSNAlert =
[ self showSafetyNumberConfirmationIfNecessaryWithConfirmationText : [ SafetyNumberStrings confirmSendButton ]
completion : ^( BOOL didConfirmIdentity ) {
if ( didConfirmIdentity ) {
[ weakSelf didPressSendButton : button
withMessageText : text
senderId : senderId
senderDisplayName : senderDisplayName
date : date
updateKeyboardState : NO ] ;
}
} ] ;
if ( didShowSNAlert ) {
return ;
}
text = [ text stringByTrimmingCharactersInSet : [ NSCharacterSet whitespaceCharacterSet ] ] ;
if ( text . length > 0 ) {
if ( [ Environment . preferences soundInForeground ] ) {
[ JSQSystemSoundPlayer jsq_playMessageSentSound ] ;
}
TSOutgoingMessage * _Nullable outgoingMessage ;
/ / Limit outgoing text messages to 16 kb .
/ /
/ / We convert large text messages to attachments
@ -1299,24 +1313,21 @@ typedef enum : NSUInteger {
[ SignalAttachment attachmentWithData : [ text dataUsingEncoding : NSUTF8StringEncoding ]
dataUTI : SignalAttachment . kOversizeTextAttachmentUTI
filename : nil ] ;
outgoingMessage =
[ ThreadUtil sendMessageWithAttachment : attachment inThread : self . thread messageSender : self . messageSender ] ;
if ( outgoingMessage != nil ) {
[ self updateLastVisibleTimestamp : outgoingMessage . timestampForSorting ] ;
}
[ self updateLastVisibleTimestamp : [ ThreadUtil sendMessageWithAttachment : attachment
inThread : self . thread
messageSender : self . messageSender ]
. timestampForSorting ] ;
} else {
outgoingMessage =
[ ThreadUtil sendMessageWithText : text inThread : self . thread messageSender : self . messageSender ] ;
if ( outgoingMessage != nil ) {
[ self updateLastVisibleTimestamp : outgoingMessage . timestampForSorting ] ;
}
[ self updateLastVisibleTimestamp : [ ThreadUtil sendMessageWithText : text
inThread : self . thread
messageSender : self . messageSender ]
. timestampForSorting ] ;
}
self . lastMessageSentDate = [ NSDate new ] ;
[ self clearUnreadMessagesIndicator ] ;
/ / Don ' t pop keyboard if we popped the SN alert , else it obscures the SN alert .
if ( outgoingMessage != nil && updateKeyboardState ) {
if ( updateKeyboardState ) {
[ self toggleDefaultKeyboard ] ;
}
[ self clearDraft ] ;
@ -3688,6 +3699,18 @@ typedef enum : NSUInteger {
return ;
}
BOOL didShowSNAlert = [ self
showSafetyNumberConfirmationIfNecessaryWithConfirmationText : [ SafetyNumberStrings confirmSendButton ]
completion : ^( BOOL didConfirmIdentity ) {
if ( didConfirmIdentity ) {
[ weakSelf
tryToSendAttachmentIfApproved : attachment ] ;
}
} ] ;
if ( didShowSNAlert ) {
return ;
}
if ( attachment == nil || [ attachment hasError ] ) {
DDLogWarn ( @ "%@ %s Invalid attachment: %@.",
self . tag ,