From f5572ff6b3cae8bf0969731776efe94b302d3bdb Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Tue, 7 Jun 2022 11:01:12 +1000 Subject: [PATCH] fix long press conficts --- .../Conversations/Message Cells/VisibleMessageCell.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Session/Conversations/Message Cells/VisibleMessageCell.swift b/Session/Conversations/Message Cells/VisibleMessageCell.swift index 35b03b8c6..f92f06979 100644 --- a/Session/Conversations/Message Cells/VisibleMessageCell.swift +++ b/Session/Conversations/Message Cells/VisibleMessageCell.swift @@ -1,5 +1,6 @@ final class VisibleMessageCell : MessageCell, LinkPreviewViewDelegate { + private var isHandlingLongPress: Bool = false private var unloadContent: (() -> Void)? private var previousX: CGFloat = 0 var albumView: MediaAlbumView? @@ -533,6 +534,11 @@ final class VisibleMessageCell : MessageCell, LinkPreviewViewDelegate { } @objc func handleLongPress(_ gestureRecognizer: UITapGestureRecognizer) { + if [ .ended, .cancelled, .failed ].contains(gestureRecognizer.state) { + isHandlingLongPress = false + return + } + guard !isHandlingLongPress else { return } guard let viewItem = viewItem else { return } let location = gestureRecognizer.location(in: self) if reactionContainerView.frame.contains(location) { @@ -546,6 +552,7 @@ final class VisibleMessageCell : MessageCell, LinkPreviewViewDelegate { } else { delegate?.handleViewItemLongPressed(viewItem) } + isHandlingLongPress = true } @objc private func handleTap(_ gestureRecognizer: UITapGestureRecognizer) {