From 81317db165795cf6821a0713e770b852b86dd8bb Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Thu, 17 Mar 2022 15:48:33 +1100 Subject: [PATCH] fix message with two links and a link preview, second link uses address of first --- Session/Conversations/ConversationVC+Interaction.swift | 5 +---- .../Message Cells/Content Views/LinkPreviewView.swift | 3 +++ Session/Conversations/Message Cells/VisibleMessageCell.swift | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Session/Conversations/ConversationVC+Interaction.swift b/Session/Conversations/ConversationVC+Interaction.swift index 48031c38d..cc41b44e4 100644 --- a/Session/Conversations/ConversationVC+Interaction.swift +++ b/Session/Conversations/ConversationVC+Interaction.swift @@ -590,10 +590,7 @@ extension ConversationVC : InputViewDelegate, MessageCellDelegate, ContextMenuAc navigationController!.present(shareVC, animated: true, completion: nil) } case .textOnlyMessage: - if let preview = viewItem.linkPreview, let urlAsString = preview.urlString, let url = URL(string: urlAsString) { - // Open the link preview URL - openURL(url) - } else if let reply = viewItem.quotedReply { + if let reply = viewItem.quotedReply { // Scroll to the source of the reply guard let indexPath = viewModel.ensureLoadWindowContainsQuotedReply(reply) else { return } messagesTableView.scrollToRow(at: indexPath, at: UITableView.ScrollPosition.middle, animated: true) diff --git a/Session/Conversations/Message Cells/Content Views/LinkPreviewView.swift b/Session/Conversations/Message Cells/Content Views/LinkPreviewView.swift index f6ef16991..a2fe25fc5 100644 --- a/Session/Conversations/Message Cells/Content Views/LinkPreviewView.swift +++ b/Session/Conversations/Message Cells/Content Views/LinkPreviewView.swift @@ -58,6 +58,8 @@ final class LinkPreviewView : UIView { result.addTarget(self, action: #selector(cancel), for: UIControl.Event.touchUpInside) return result }() + + var bodyTextView: UITextView? // MARK: Settings private static let loaderSize: CGFloat = 24 @@ -145,6 +147,7 @@ final class LinkPreviewView : UIView { bodyTextViewContainer.subviews.forEach { $0.removeFromSuperview() } if let viewItem = viewItem { let bodyTextView = VisibleMessageCell.getBodyTextView(for: viewItem, with: maxWidth, textColor: sentLinkPreviewTextColor, searchText: delegate.lastSearchedText, delegate: delegate) + self.bodyTextView = bodyTextView bodyTextViewContainer.addSubview(bodyTextView) bodyTextView.pin(to: bodyTextViewContainer, withInset: 12) } diff --git a/Session/Conversations/Message Cells/VisibleMessageCell.swift b/Session/Conversations/Message Cells/VisibleMessageCell.swift index bbcd2679a..22e4f8a2a 100644 --- a/Session/Conversations/Message Cells/VisibleMessageCell.swift +++ b/Session/Conversations/Message Cells/VisibleMessageCell.swift @@ -324,6 +324,7 @@ final class VisibleMessageCell : MessageCell, LinkPreviewViewDelegate { snContentView.addSubview(linkPreviewView) linkPreviewView.pin(to: snContentView) linkPreviewView.layer.mask = bubbleViewMaskLayer + self.bodyTextView = linkPreviewView.bodyTextView } else if let openGroupInvitationName = message.openGroupInvitationName, let openGroupInvitationURL = message.openGroupInvitationURL { let openGroupInvitationView = OpenGroupInvitationView(name: openGroupInvitationName, url: openGroupInvitationURL, textColor: bodyLabelTextColor, isOutgoing: isOutgoing) snContentView.addSubview(openGroupInvitationView)