diff --git a/Signal/Images.xcassets/attachment_audio.imageset/Contents.json b/Signal/Images.xcassets/attachment_audio.imageset/Contents.json new file mode 100644 index 000000000..18722cdf0 --- /dev/null +++ b/Signal/Images.xcassets/attachment_audio.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "attachment_audio@1x.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "attachment_audio@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "attachment_audio@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@1x.png b/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@1x.png new file mode 100644 index 000000000..53c019a76 Binary files /dev/null and b/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@1x.png differ diff --git a/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@2x.png b/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@2x.png new file mode 100644 index 000000000..4625ebffa Binary files /dev/null and b/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@2x.png differ diff --git a/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@3x.png b/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@3x.png new file mode 100644 index 000000000..4adf408bd Binary files /dev/null and b/Signal/Images.xcassets/attachment_audio.imageset/attachment_audio@3x.png differ diff --git a/Signal/Images.xcassets/attachment_file.imageset/Contents.json b/Signal/Images.xcassets/attachment_file.imageset/Contents.json new file mode 100644 index 000000000..243216bf7 --- /dev/null +++ b/Signal/Images.xcassets/attachment_file.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "attachment_file@1x.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "attachment_file@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "attachment_file@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Signal/Images.xcassets/attachment_file.imageset/attachment_file@1x.png b/Signal/Images.xcassets/attachment_file.imageset/attachment_file@1x.png new file mode 100644 index 000000000..bed7d752c Binary files /dev/null and b/Signal/Images.xcassets/attachment_file.imageset/attachment_file@1x.png differ diff --git a/Signal/Images.xcassets/attachment_file.imageset/attachment_file@2x.png b/Signal/Images.xcassets/attachment_file.imageset/attachment_file@2x.png new file mode 100644 index 000000000..fa215952d Binary files /dev/null and b/Signal/Images.xcassets/attachment_file.imageset/attachment_file@2x.png differ diff --git a/Signal/Images.xcassets/attachment_file.imageset/attachment_file@3x.png b/Signal/Images.xcassets/attachment_file.imageset/attachment_file@3x.png new file mode 100644 index 000000000..8ab33f021 Binary files /dev/null and b/Signal/Images.xcassets/attachment_file.imageset/attachment_file@3x.png differ diff --git a/Signal/Images.xcassets/attachment_play_button.imageset/Contents.json b/Signal/Images.xcassets/attachment_play_button.imageset/Contents.json new file mode 100644 index 000000000..fa45f651b --- /dev/null +++ b/Signal/Images.xcassets/attachment_play_button.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "attachment_play_button@1x.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "attachment_play_button@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "attachment_play_button@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@1x.png b/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@1x.png new file mode 100644 index 000000000..54fa8706c Binary files /dev/null and b/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@1x.png differ diff --git a/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@2x.png b/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@2x.png new file mode 100644 index 000000000..c9815f24d Binary files /dev/null and b/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@2x.png differ diff --git a/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@3x.png b/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@3x.png new file mode 100644 index 000000000..4c6e2658d Binary files /dev/null and b/Signal/Images.xcassets/attachment_play_button.imageset/attachment_play_button@3x.png differ diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSQuotedMessageView.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSQuotedMessageView.m index c5c03315e..972955740 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSQuotedMessageView.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSQuotedMessageView.m @@ -104,8 +104,7 @@ NS_ASSUME_NONNULL_BEGIN - (UIColor *)highlightColor { BOOL isQuotingSelf = [NSObject isNullableObject:self.quotedMessage.authorId equalTo:TSAccountManager.localNumber]; - return (isQuotingSelf ? OWSMessagesBubbleImageFactory.bubbleColorOutgoingSent - : OWSMessagesBubbleImageFactory.bubbleColorIncoming); + return (isQuotingSelf ? OWSMessagesBubbleImageFactory.bubbleColorOutgoingSent : [UIColor colorWithRGBHex:0xB5B5B5]); } #pragma mark - @@ -140,6 +139,17 @@ NS_ASSUME_NONNULL_BEGIN quotedAttachmentView.layer.cornerRadius = 2.f; quotedAttachmentView.clipsToBounds = YES; quotedAttachmentView.backgroundColor = [UIColor whiteColor]; + + if (self.isVideoAttachment) { + UIImage *contentIcon = [UIImage imageNamed:@"attachment_play_button"]; + contentIcon = [contentIcon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; + UIImageView *contentImageView = [self imageViewForImage:contentIcon]; + contentImageView.tintColor = [UIColor whiteColor]; + [quotedAttachmentView addSubview:contentImageView]; + [contentImageView autoCenterInSuperview]; + [contentImageView setContentHuggingHigh]; + [contentImageView setCompressionResistanceHigh]; + } } else if (self.quotedMessage.thumbnailDownloadFailed) { // TODO design review icon and color UIImage *contentIcon = @@ -162,17 +172,19 @@ NS_ASSUME_NONNULL_BEGIN [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapFailedThumbnailDownload:)]; [quotedAttachmentView addGestureRecognizer:tapGesture]; } else { - // TODO: This asset is wrong. - // TODO: There's a special asset for audio files. - UIImage *contentIcon = [UIImage imageNamed:@"file-thin-black-filled-large"]; - UIImageView *contentImageView = [self imageViewForImage:contentIcon]; quotedAttachmentView = [UIView containerView]; - [quotedAttachmentView addSubview:contentImageView]; quotedAttachmentView.backgroundColor = self.highlightColor; quotedAttachmentView.layer.cornerRadius = self.quotedAttachmentSize * 0.5f; + + UIImage *contentIcon = + [UIImage imageNamed:(self.isAudioAttachment ? @"attachment_audio" : @"attachment_file")]; + contentIcon = [contentIcon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; + UIImageView *contentImageView = [self imageViewForImage:contentIcon]; + contentImageView.tintColor = [UIColor whiteColor]; + [quotedAttachmentView addSubview:contentImageView]; [contentImageView autoCenterInSuperview]; - [contentImageView - autoSetDimensionsToSize:CGSizeMake(self.quotedAttachmentSize * 0.5f, self.quotedAttachmentSize * 0.5f)]; + [contentImageView setContentHuggingHigh]; + [contentImageView setCompressionResistanceHigh]; } quotedAttachmentView.userInteractionEnabled = YES; @@ -354,6 +366,28 @@ NS_ASSUME_NONNULL_BEGIN return nil; } +- (BOOL)isAudioAttachment +{ + // TODO: Are we going to use the filename? For all mimetypes? + NSString *_Nullable contentType = self.quotedMessage.contentType; + if (contentType.length < 1) { + return NO; + } + + return [MIMETypeUtil isAudio:contentType]; +} + +- (BOOL)isVideoAttachment +{ + // TODO: Are we going to use the filename? For all mimetypes? + NSString *_Nullable contentType = self.quotedMessage.contentType; + if (contentType.length < 1) { + return NO; + } + + return [MIMETypeUtil isVideo:contentType]; +} + - (UILabel *)configureQuotedAuthorLabel { OWSAssert(self.quotedAuthorLabel);