From db7cb8d3889159ceb8f742c0db8f96344c6839e0 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 13 Apr 2017 13:24:42 -0400 Subject: [PATCH 1/2] Send oversize text messages as attachments. // FREEBIE --- .../ViewControllers/MessagesViewController.m | 27 +++++-------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/Signal/src/ViewControllers/MessagesViewController.m b/Signal/src/ViewControllers/MessagesViewController.m index a47d50f7f..2c2a88485 100644 --- a/Signal/src/ViewControllers/MessagesViewController.m +++ b/Signal/src/ViewControllers/MessagesViewController.m @@ -1098,28 +1098,15 @@ typedef enum : NSUInteger { text = [text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - // Limit outgoing text messages to 64kb. + // Limit outgoing text messages to 16kb. // - // TODO: Convert large text messages to attachments + // We 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) { + 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 if (text.length > 0) { if ([Environment.preferences soundInForeground]) { [JSQSystemSoundPlayer jsq_playMessageSentSound]; } From da13506db18dc8b4d2926ee0314cc904bfe564c8 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 13 Apr 2017 14:42:05 -0400 Subject: [PATCH 2/2] Respond to CR. // FREEBIE --- .../ViewControllers/MessagesViewController.m | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/Signal/src/ViewControllers/MessagesViewController.m b/Signal/src/ViewControllers/MessagesViewController.m index 2c2a88485..b901a7a73 100644 --- a/Signal/src/ViewControllers/MessagesViewController.m +++ b/Signal/src/ViewControllers/MessagesViewController.m @@ -1098,22 +1098,21 @@ typedef enum : NSUInteger { text = [text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - // 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 if (text.length > 0) { + 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];