Merge branch 'charlesmchen/sendOversizeTextMessages'

This commit is contained in:
Matthew Chen 2017-04-13 14:42:19 -04:00
commit 72eb632874
1 changed files with 11 additions and 25 deletions

View File

@ -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];