|
|
|
@ -1098,35 +1098,21 @@ typedef enum : NSUInteger {
|
|
|
|
|
|
|
|
|
|
text = [text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
|
|
|
|
|
|
|
|
|
|
// Limit outgoing text messages to 64kb.
|
|
|
|
|
//
|
|
|
|
|
// TODO: Convert large text messages to attachments
|
|
|
|
|
// which are presented as normal text messages.
|
|
|
|
|
const NSUInteger kMaxTextMessageSize = 64 * 1024;
|
|
|
|
|
if ([text lengthOfBytesUsingEncoding:NSUTF8StringEncoding] > kMaxTextMessageSize) {
|
|
|
|
|
UIAlertController *controller =
|
|
|
|
|
[UIAlertController alertControllerWithTitle:NSLocalizedString(@"CONVERSATION_VIEW_TEXT_MESSAGE_TOO_LARGE_ALERT_TITLE",
|
|
|
|
|
@"The title of the 'text message too large' alert.")
|
|
|
|
|
message:NSLocalizedString(@"CONVERSATION_VIEW_TEXT_MESSAGE_TOO_LARGE_ALERT_MESSAGE",
|
|
|
|
|
@"The message of the 'text message too large' alert.")
|
|
|
|
|
preferredStyle:UIAlertControllerStyleAlert];
|
|
|
|
|
[controller addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil)
|
|
|
|
|
style:UIAlertActionStyleDefault
|
|
|
|
|
handler:nil]];
|
|
|
|
|
[self presentViewController:controller
|
|
|
|
|
animated:YES
|
|
|
|
|
completion:nil];
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (text.length > 0) {
|
|
|
|
|
if ([Environment.preferences soundInForeground]) {
|
|
|
|
|
[JSQSystemSoundPlayer jsq_playMessageSentSound];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[ThreadUtil sendMessageWithText:text
|
|
|
|
|
inThread:self.thread
|
|
|
|
|
messageSender:self.messageSender];
|
|
|
|
|
// Limit outgoing text messages to 16kb.
|
|
|
|
|
//
|
|
|
|
|
// We convert large text messages to attachments
|
|
|
|
|
// which are presented as normal text messages.
|
|
|
|
|
const NSUInteger kOversizeTextMessageSizeThreshold = 16 * 1024;
|
|
|
|
|
if ([text lengthOfBytesUsingEncoding:NSUTF8StringEncoding] >= kOversizeTextMessageSizeThreshold) {
|
|
|
|
|
SignalAttachment *attachment = [SignalAttachment oversizeTextAttachmentWithText:text];
|
|
|
|
|
[ThreadUtil sendMessageWithAttachment:attachment inThread:self.thread messageSender:self.messageSender];
|
|
|
|
|
} else {
|
|
|
|
|
[ThreadUtil sendMessageWithText:text inThread:self.thread messageSender:self.messageSender];
|
|
|
|
|
}
|
|
|
|
|
if (updateKeyboardState)
|
|
|
|
|
{
|
|
|
|
|
[self toggleDefaultKeyboard];
|
|
|
|
|