diff --git a/Signal/src/view controllers/MessagesViewController.m b/Signal/src/view controllers/MessagesViewController.m index 1ad08ac6a..4bea925cf 100644 --- a/Signal/src/view controllers/MessagesViewController.m +++ b/Signal/src/view controllers/MessagesViewController.m @@ -1041,23 +1041,6 @@ typedef enum : NSUInteger { #pragma mark - Actions -- (void)collectionView:(JSQMessagesCollectionView *)collectionView didTapCellAtIndexPath:(NSIndexPath *)indexPath touchLocation:(CGPoint)touchLocation -{ - TSMessageAdapter *messageItem = [collectionView.dataSource collectionView:collectionView messageDataForItemAtIndexPath:indexPath]; - TSInteraction *interaction = [self interactionAtIndexPath:indexPath]; - - switch (messageItem.messageType) { - case TSErrorMessageAdapter: - [self handleErrorMessageTap:(TSErrorMessage *)interaction]; - break; - case TSInfoMessageAdapter: - [self handleWarningTap:interaction]; - break; - default: - DDLogDebug(@"Not handling cell tap for message: %@", messageItem); - } -} - - (void)collectionView:(JSQMessagesCollectionView *)collectionView didTapMessageBubbleAtIndexPath:(NSIndexPath *)indexPath { @@ -1242,6 +1225,12 @@ typedef enum : NSUInteger { } } } break; + case TSErrorMessageAdapter: + [self handleErrorMessageTap:(TSErrorMessage *)interaction]; + break; + case TSInfoMessageAdapter: + [self handleWarningTap:interaction]; + break; case TSCallAdapter: break; default: diff --git a/Signal/src/views/OWSDisplayedMessageCollectionViewCell.m b/Signal/src/views/OWSDisplayedMessageCollectionViewCell.m index a65819fcb..7039a41b9 100644 --- a/Signal/src/views/OWSDisplayedMessageCollectionViewCell.m +++ b/Signal/src/views/OWSDisplayedMessageCollectionViewCell.m @@ -56,4 +56,13 @@ self.cellLabel.text = nil; } +// This subclass does not have a messageBubbleContainerView, so superclass +// touch calculations will be incorrect. Since this view spans the entire +// frame, we can override the touch handler to respond to user actions by +// default. +- (void)jsq_handleTapGesture:(UITapGestureRecognizer *)tap +{ + [self.delegate messagesCollectionViewCellDidTapMessageBubble:self]; +} + @end