Merge branch 'charlesmchen/attachmentMimeTypes'

pull/1/head
Matthew Chen 7 years ago
commit 50b1f420b5

@ -136,7 +136,7 @@ CHECKOUT OPTIONS:
:commit: 7054e4b13ee5bcd6d524adb6dc9a726e8c466308
:git: https://github.com/WhisperSystems/JSQMessagesViewController.git
SignalServiceKit:
:commit: 955c4d8a0281ea5a53da751044ba818032bb72d1
:commit: 92de9a5e72f12dc242beaba8b62388207de19d9b
:git: https://github.com/WhisperSystems/SignalServiceKit.git
SocketRocket:
:commit: 877ac7438be3ad0b45ef5ca3969574e4b97112bf

@ -316,23 +316,8 @@ NS_ASSUME_NONNULL_BEGIN
if (action == @selector(copy:)) {
NSString *utiType = [MIMETypeUtil utiTypeForMIMEType:_contentType];
if (!utiType) {
if ([_contentType isEqualToString:@"audio/amr"]) {
utiType = @"org.3gpp.adaptive-multi-rate-audio";
} else if ([_contentType isEqualToString:@"audio/mp3"] ||
[_contentType isEqualToString:@"audio/x-mpeg"] || [_contentType isEqualToString:@"audio/mpeg"] ||
[_contentType isEqualToString:@"audio/mpeg3"] || [_contentType isEqualToString:@"audio/x-mp3"] ||
[_contentType isEqualToString:@"audio/x-mpeg3"]) {
utiType = (NSString *)kUTTypeMP3;
} else if ([_contentType isEqualToString:@"audio/aac"] ||
[_contentType isEqualToString:@"audio/x-m4a"]) {
utiType = (NSString *)kUTTypeMPEG4Audio;
} else if ([_contentType isEqualToString:@"audio/aiff"] ||
[_contentType isEqualToString:@"audio/x-aiff"]) {
utiType = (NSString *)kUTTypeAudioInterchangeFileFormat;
} else {
OWSAssert(0);
utiType = (NSString *)kUTTypeAudio;
}
OWSAssert(0);
utiType = (NSString *)kUTTypeAudio;
}
NSData *data = [NSData dataWithContentsOfURL:self.fileURL];

@ -325,6 +325,10 @@ typedef enum : NSUInteger {
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if (self.rightBarButtonItem != self.voiceMemoButton) {
return NO;
}
// We want to be permissive about the voice message gesture, so we accept
// gesture that begin within N points of the
CGFloat kVoiceMemoGestureTolerancePoints = 10;
@ -3158,7 +3162,7 @@ typedef enum : NSUInteger {
self.audioRecorder = nil;
NSString *filename = [NSLocalizedString(@"VOICE_MESSAGE_FILE_NAME", @"Filename for voice messages.")
stringByAppendingPathExtension:[MIMETypeUtil fileExtensionForUTIType:(NSString *)kUTTypeMPEG4Audio]];
stringByAppendingPathExtension:@".m4a"];
SignalAttachment *attachment =
[SignalAttachment attachmentWithData:audioData dataUTI:(NSString *)kUTTypeMPEG4Audio filename:filename];

@ -168,6 +168,18 @@ class SignalAttachment: NSObject {
// Returns the MIME type for this attachment or nil if no MIME type
// can be identified.
var mimeType: String {
if let filename = filename {
let fileExtension = (filename as NSString).pathExtension
if fileExtension.characters.count > 0 {
if let mimeType = MIMETypeUtil.mimeType(forFileExtension:fileExtension) {
// UTI types are an imperfect means of representing file type;
// file extensions are also imperfect but far more reliable and
// comprehensive so we always prefer to try to deduce MIME type
// from the file extension.
return mimeType
}
}
}
if dataUTI == SignalAttachment.kOversizeTextAttachmentUTI {
return OWSMimeTypeOversizeTextMessage
}
@ -204,6 +216,12 @@ class SignalAttachment: NSObject {
// Returns the file extension for this attachment or nil if no file extension
// can be identified.
var fileExtension: String? {
if let filename = filename {
let fileExtension = (filename as NSString).pathExtension
if fileExtension.characters.count > 0 {
return fileExtension
}
}
if dataUTI == SignalAttachment.kOversizeTextAttachmentUTI {
return "txt"
}

Loading…
Cancel
Save