diff --git a/Signal/src/Signal-Bridging-Header.h b/Signal/src/Signal-Bridging-Header.h index 960c613b2..bf282a607 100644 --- a/Signal/src/Signal-Bridging-Header.h +++ b/Signal/src/Signal-Bridging-Header.h @@ -10,6 +10,7 @@ #import "Environment.h" #import "FLAnimatedImage.h" #import "FingerprintViewController.h" +#import "NSData+Image.h" #import "NotificationsManager.h" #import "OWSAnyTouchGestureRecognizer.h" #import "OWSAudioAttachmentPlayer.h" diff --git a/Signal/src/ViewControllers/AttachmentApprovalViewController.swift b/Signal/src/ViewControllers/AttachmentApprovalViewController.swift index 20d843daf..df56a41f8 100644 --- a/Signal/src/ViewControllers/AttachmentApprovalViewController.swift +++ b/Signal/src/ViewControllers/AttachmentApprovalViewController.swift @@ -171,8 +171,13 @@ class AttachmentApprovalViewController: OWSViewController, OWSAudioAttachmentPla } private func createAnimatedPreview(attachmentPreviewView: UIView) { + let data = attachment.data + guard (data as NSData).isValidImage() else { + return + } + // Use Flipboard FLAnimatedImage library to display gifs - guard let animatedImage = FLAnimatedImage(gifData:attachment.data) else { + guard let animatedImage = FLAnimatedImage(gifData:data) else { createGenericPreview(attachmentPreviewView:attachmentPreviewView) return } diff --git a/Signal/src/ViewControllers/FullImageViewController.m b/Signal/src/ViewControllers/FullImageViewController.m index 8f87b34e7..9f5c74b29 100644 --- a/Signal/src/ViewControllers/FullImageViewController.m +++ b/Signal/src/ViewControllers/FullImageViewController.m @@ -2,15 +2,16 @@ // Copyright (c) 2017 Open Whisper Systems. All rights reserved. // -#import "FLAnimatedImage.h" #import "FullImageViewController.h" -#import "UIUtil.h" -#import "UIView+OWS.h" -#import "TSPhotoAdapter.h" -#import "TSMessageAdapter.h" +#import "AttachmentSharing.h" +#import "FLAnimatedImage.h" +#import "NSData+Image.h" #import "TSAnimatedAdapter.h" +#import "TSMessageAdapter.h" +#import "TSPhotoAdapter.h" #import "UIColor+OWS.h" -#import "AttachmentSharing.h" +#import "UIUtil.h" +#import "UIView+OWS.h" NS_ASSUME_NONNULL_BEGIN @@ -168,14 +169,18 @@ NS_ASSUME_NONNULL_BEGIN - (void)initializeImageView { if (self.isAnimated) { - // Present the animated image using Flipboard/FLAnimatedImage - FLAnimatedImage *animatedGif = [FLAnimatedImage animatedImageWithGIFData:self.fileData]; - FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] init]; - imageView.animatedImage = animatedGif; - imageView.frame = self.originRect; - imageView.contentMode = UIViewContentModeScaleAspectFill; - imageView.clipsToBounds = YES; - self.imageView = imageView; + if ([self.fileData isValidImage]) { + // Present the animated image using Flipboard/FLAnimatedImage + FLAnimatedImage *animatedGif = [FLAnimatedImage animatedImageWithGIFData:self.fileData]; + FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] init]; + imageView.animatedImage = animatedGif; + imageView.frame = self.originRect; + imageView.contentMode = UIViewContentModeScaleAspectFill; + imageView.clipsToBounds = YES; + self.imageView = imageView; + } else { + self.imageView = [[UIImageView alloc] initWithFrame:self.originRect]; + } } else { // Present the static image using standard UIImageView self.imageView = [[UIImageView alloc] initWithFrame:self.originRect];