From e91195385be0720e67d231f8e75132f56ed49b77 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 15 Jan 2019 16:39:01 -0500 Subject: [PATCH] Respond to CR. --- .../ColorPickerViewController.swift | 5 +++++ .../Cells/MediaAlbumCellView.swift | 2 +- .../ConversationView/Cells/OWSMessageBubbleView.m | 15 ++++----------- .../ConversationView/ConversationViewItem.h | 2 ++ .../ConversationView/ConversationViewItem.m | 13 +++++++++++++ 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/Signal/src/ViewControllers/ColorPickerViewController.swift b/Signal/src/ViewControllers/ColorPickerViewController.swift index cec956a9f..a1bcac6c4 100644 --- a/Signal/src/ViewControllers/ColorPickerViewController.swift +++ b/Signal/src/ViewControllers/ColorPickerViewController.swift @@ -434,6 +434,11 @@ private class MockConversationViewItem: NSObject, ConversationViewItem { owsFailDebug("unexpected invocation") return nil } + + func mediaAlbumHasFailedAttachment() -> Bool { + owsFailDebug("unexpected invocation") + return false + } } private class MockIncomingMessage: TSIncomingMessage { diff --git a/Signal/src/ViewControllers/ConversationView/Cells/MediaAlbumCellView.swift b/Signal/src/ViewControllers/ConversationView/Cells/MediaAlbumCellView.swift index 146dd9075..5e4beb8d0 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/MediaAlbumCellView.swift +++ b/Signal/src/ViewControllers/ConversationView/Cells/MediaAlbumCellView.swift @@ -152,7 +152,7 @@ public class MediaAlbumCellView: UIStackView { } for itemView in itemViews { - guard moreItemsView == itemView else { + guard moreItemsView != itemView else { // Don't display the caption indicator on // the "more" item, if any. continue diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m index 72291134b..2cb3d6a67 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m @@ -1388,17 +1388,10 @@ const UIDataDetectorTypes kOWSAllowedDataDetectorTypes return; } - if ([mediaAlbumCellView isMoreItemsViewWithMediaView:mediaView]) { - for (ConversationMediaAlbumItem *mediaAlbumItem in self.viewItem.mediaAlbumItems) { - if (mediaAlbumItem.isFailedDownload) { - // Treat the tap as a "retry" tap if: - // - // a) the user tapped on the "more items" cell. - // b) there are any failed downloads in the album. - [self.delegate didTapFailedIncomingAttachment:self.viewItem]; - return; - } - } + if ([mediaAlbumCellView isMoreItemsViewWithMediaView:mediaView] + && self.viewItem.mediaAlbumHasFailedAttachment) { + [self.delegate didTapFailedIncomingAttachment:self.viewItem]; + return; } TSAttachment *attachment = mediaView.attachment; diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewItem.h b/Signal/src/ViewControllers/ConversationView/ConversationViewItem.h index 9d88e7e37..487d5a7f5 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewItem.h +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewItem.h @@ -146,6 +146,8 @@ NSString *NSStringForOWSMessageCellType(OWSMessageCellType cellType); - (nullable TSAttachmentStream *)firstValidAlbumAttachment; +- (BOOL)mediaAlbumHasFailedAttachment; + @end #pragma mark - diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewItem.m b/Signal/src/ViewControllers/ConversationView/ConversationViewItem.m index 7733b873f..60b94a184 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewItem.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewItem.m @@ -1084,6 +1084,19 @@ NSString *NSStringForOWSMessageCellType(OWSMessageCellType cellType) } } +- (BOOL)mediaAlbumHasFailedAttachment +{ + OWSAssertDebug(self.messageCellType == OWSMessageCellType_MediaAlbum); + OWSAssertDebug(self.mediaAlbumItems.count > 0); + + for (ConversationMediaAlbumItem *mediaAlbumItem in self.mediaAlbumItems) { + if (mediaAlbumItem.isFailedDownload) { + return YES; + } + } + return NO; +} + @end NS_ASSUME_NONNULL_END