From a6fa53aaf01394fdfb03141d86f2e0da75f78d4d Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Thu, 9 Feb 2023 16:53:29 +1100 Subject: [PATCH] fix #768 --- Session/Conversations/ConversationViewModel.swift | 12 +++++++++--- .../Shared Models/MessageViewModel.swift | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Session/Conversations/ConversationViewModel.swift b/Session/Conversations/ConversationViewModel.swift index 92e55e45b..503691370 100644 --- a/Session/Conversations/ConversationViewModel.swift +++ b/Session/Conversations/ConversationViewModel.swift @@ -82,7 +82,11 @@ public class ConversationViewModel: OWSAudioPlayerDelegate { // distinct stutter) self.pagedDataObserver = self.setupPagedObserver( for: threadId, - userPublicKey: getUserHexEncodedPublicKey() + userPublicKey: getUserHexEncodedPublicKey(), + blindedPublicKey: SessionThread.getUserHexEncodedBlindedKey( + threadId: threadId, + threadVariant: threadVariant + ) ) // Run the initial query on a background thread so we don't block the push transition @@ -166,7 +170,7 @@ public class ConversationViewModel: OWSAudioPlayerDelegate { } } - private func setupPagedObserver(for threadId: String, userPublicKey: String) -> PagedDatabaseObserver { + private func setupPagedObserver(for threadId: String, userPublicKey: String, blindedPublicKey: String?) -> PagedDatabaseObserver { return PagedDatabaseObserver( pagedTable: Interaction.self, pageSize: ConversationViewModel.pageSize, @@ -214,6 +218,7 @@ public class ConversationViewModel: OWSAudioPlayerDelegate { orderSQL: MessageViewModel.orderSQL, dataQuery: MessageViewModel.baseQuery( userPublicKey: userPublicKey, + blindedPublicKey: blindedPublicKey, orderSQL: MessageViewModel.orderSQL, groupSQL: MessageViewModel.groupSQL ), @@ -443,7 +448,8 @@ public class ConversationViewModel: OWSAudioPlayerDelegate { self.observableThreadData = self.setupObservableThreadData(for: updatedThreadId) self.pagedDataObserver = self.setupPagedObserver( for: updatedThreadId, - userPublicKey: getUserHexEncodedPublicKey() + userPublicKey: getUserHexEncodedPublicKey(), + blindedPublicKey: nil ) // Try load everything up to the initial visible message, fallback to just the initial page of messages diff --git a/SessionMessagingKit/Shared Models/MessageViewModel.swift b/SessionMessagingKit/Shared Models/MessageViewModel.swift index 81c452039..a04fd937b 100644 --- a/SessionMessagingKit/Shared Models/MessageViewModel.swift +++ b/SessionMessagingKit/Shared Models/MessageViewModel.swift @@ -621,6 +621,7 @@ public extension MessageViewModel { static func baseQuery( userPublicKey: String, + blindedPublicKey: String?, orderSQL: SQL, groupSQL: SQL? ) -> (([Int64]) -> AdaptedFetchRequest>) { @@ -717,7 +718,8 @@ public extension MessageViewModel { \(interactionAttachment[.attachmentId]) AS \(Quote.Columns.attachmentId) FROM \(Quote.self) LEFT JOIN \(Interaction.self) ON ( - \(quote[.authorId]) = \(interaction[.authorId]) AND + (\(quote[.authorId]) = \(interaction[.authorId]) OR + \(quote[.authorId]) = \(blindedPublicKey ?? "") AND \(userPublicKey) = \(interaction[.authorId]) ) AND \(quote[.timestampMs]) = \(interaction[.timestampMs]) ) LEFT JOIN \(InteractionAttachment.self) ON \(interaction[.id]) = \(interactionAttachment[.interactionId])