diff --git a/Signal/src/ViewControllers/HomeView/ConversationSearchViewController.swift b/Signal/src/ViewControllers/HomeView/ConversationSearchViewController.swift index 778367716..d9419bc4d 100644 --- a/Signal/src/ViewControllers/HomeView/ConversationSearchViewController.swift +++ b/Signal/src/ViewControllers/HomeView/ConversationSearchViewController.swift @@ -191,22 +191,18 @@ class ConversationSearchViewController: UITableViewController { } overrideTimestamp = NSNumber(value: message.timestamp) - guard let snippet = searchResult.snippet else { + guard let rawSnippet = searchResult.snippet else { owsFail("\(ConversationSearchViewController.logTag) message search result is missing snippet") return } - guard let snippetData = snippet.data(using: String.Encoding.utf8) else { - owsFail("\(ConversationSearchViewController.logTag) message search result has invalid snippet") - return - } - do { - let snippetOptions = [NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html] - overrideSnippet = try NSAttributedString(data: snippetData, - options: snippetOptions, - documentAttributes: nil) - } catch { - owsFail("\(ConversationSearchViewController.logTag) could not parse message snippet") - } + // YDB uses bold tags to highlight matches within the snippet. + let filteredSnippet = rawSnippet + .replacingOccurrences(of: "", with: "") + .replacingOccurrences(of: "", with: "") + .replacingOccurrences(of: "", with: "") + .replacingOccurrences(of: "", with: "") + + overrideSnippet = NSAttributedString(string: filteredSnippet) } cell.configure(withThread: searchResult.thread, diff --git a/SignalMessaging/utils/ConversationSearcher.swift b/SignalMessaging/utils/ConversationSearcher.swift index 90f7e8b31..965553ef3 100644 --- a/SignalMessaging/utils/ConversationSearcher.swift +++ b/SignalMessaging/utils/ConversationSearcher.swift @@ -106,6 +106,7 @@ public class ConversationSearcher: NSObject { var existingConversationRecipientIds: Set = Set() self.finder.enumerateObjects(searchText: searchText, transaction: transaction) { (match: Any, snippet: String?) in + if let thread = match as? TSThread { let threadViewModel = ThreadViewModel(thread: thread, transaction: transaction) let snippet: String? = thread.lastMessageText(transaction: transaction)