Merge pull request #26 from WhisperSystems/read-voice-messages

Read voice messages
pull/1/head
Michael Kirk 9 years ago committed by GitHub
commit d802918603

@ -61,6 +61,7 @@ NS_ASSUME_NONNULL_BEGIN
[supportedAttachmentPointers addObject:pointer]; [supportedAttachmentPointers addObject:pointer];
[supportedAttachmentIds addObject:pointer.uniqueId]; [supportedAttachmentIds addObject:pointer.uniqueId];
} else { } else {
DDLogError(@"%@ Received unsupported attachment of type: %@", self.tag, pointer.contentType);
TSInfoMessage *infoMessage = [[TSInfoMessage alloc] initWithTimestamp:timestamp TSInfoMessage *infoMessage = [[TSInfoMessage alloc] initWithTimestamp:timestamp
inThread:thread inThread:thread
messageType:TSInfoMessageTypeUnsupportedMessage]; messageType:TSInfoMessageTypeUnsupportedMessage];
@ -87,6 +88,16 @@ NS_ASSUME_NONNULL_BEGIN
return self.supportedAttachmentPointers.count > 0; return self.supportedAttachmentPointers.count > 0;
} }
+ (NSString *)tag
{
return [NSString stringWithFormat:@"[%@]", self.class];
}
- (NSString *)tag
{
return self.class.tag;
}
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

@ -6,6 +6,8 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#endif #endif
NS_ASSUME_NONNULL_BEGIN
@interface TSAttachmentStream : TSAttachment @interface TSAttachmentStream : TSAttachment
@property (nonatomic) BOOL isDownloaded; @property (nonatomic) BOOL isDownloaded;
@ -16,17 +18,19 @@
contentType:(NSString *)contentType NS_DESIGNATED_INITIALIZER; contentType:(NSString *)contentType NS_DESIGNATED_INITIALIZER;
#if TARGET_OS_IPHONE #if TARGET_OS_IPHONE
- (UIImage *)image; - (nullable UIImage *)image;
#endif #endif
- (BOOL)isAnimated; - (BOOL)isAnimated;
- (BOOL)isImage; - (BOOL)isImage;
- (BOOL)isVideo; - (BOOL)isVideo;
- (NSString *)filePath; - (nullable NSString *)filePath;
- (NSURL *)mediaURL; - (nullable NSURL *)mediaURL;
+ (void)deleteAttachments; + (void)deleteAttachments;
+ (NSString *)attachmentsFolder; + (NSString *)attachmentsFolder;
+ (NSUInteger)numberOfItemsInAttachmentsFolder; + (NSUInteger)numberOfItemsInAttachmentsFolder;
@end @end
NS_ASSUME_NONNULL_END

@ -6,6 +6,8 @@
#import <AVFoundation/AVFoundation.h> #import <AVFoundation/AVFoundation.h>
#import <YapDatabase/YapDatabaseTransaction.h> #import <YapDatabase/YapDatabaseTransaction.h>
NS_ASSUME_NONNULL_BEGIN
@implementation TSAttachmentStream @implementation TSAttachmentStream
- (instancetype)initWithIdentifier:(NSString *)identifier - (instancetype)initWithIdentifier:(NSString *)identifier
@ -73,15 +75,17 @@
return count; return count;
} }
- (NSString *)filePath - (nullable NSString *)filePath
{ {
return [MIMETypeUtil filePathForAttachment:self.uniqueId return [MIMETypeUtil filePathForAttachment:self.uniqueId
ofMIMEType:self.contentType ofMIMEType:self.contentType
inFolder:[[self class] attachmentsFolder]]; inFolder:[[self class] attachmentsFolder]];
} }
- (NSURL *)mediaURL { - (nullable NSURL *)mediaURL
return [NSURL fileURLWithPath:[self filePath]]; {
NSString *filePath = self.filePath;
return filePath ? [NSURL fileURLWithPath:filePath] : nil;
} }
- (BOOL)isAnimated { - (BOOL)isAnimated {
@ -100,7 +104,8 @@
return [MIMETypeUtil isAudio:self.contentType]; return [MIMETypeUtil isAudio:self.contentType];
} }
- (UIImage *)image { - (nullable UIImage *)image
{
if ([self isVideo] || [self isAudio]) { if ([self isVideo] || [self isAudio]) {
return [self videoThumbnail]; return [self videoThumbnail];
} else { } else {
@ -109,7 +114,8 @@
} }
} }
- (UIImage *)videoThumbnail { - (nullable UIImage *)videoThumbnail
{
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:self.filePath] options:nil]; AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:self.filePath] options:nil];
AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset]; AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generate.appliesPreferredTrackTransform = YES; generate.appliesPreferredTrackTransform = YES;
@ -129,3 +135,5 @@
} }
@end @end
NS_ASSUME_NONNULL_END

@ -20,6 +20,7 @@ NSString *const OWSMimeTypeImagePng = @"image/png";
+ (NSDictionary *)supportedAudioMIMETypesToExtensionTypes { + (NSDictionary *)supportedAudioMIMETypesToExtensionTypes {
return @{ return @{
@"audio/aac" : @"m4a",
@"audio/x-m4p" : @"m4p", @"audio/x-m4p" : @"m4p",
@"audio/x-m4b" : @"m4b", @"audio/x-m4b" : @"m4b",
@"audio/x-m4a" : @"m4a", @"audio/x-m4a" : @"m4a",

Loading…
Cancel
Save