From 42c7f440e927876adcf6481afc5f1e0cc34921fe Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Thu, 11 Mar 2021 14:37:53 +1100 Subject: [PATCH] fix quoting message in open groups --- .../main/java/org/thoughtcrime/securesms/database/Storage.kt | 4 ++++ .../java/org/session/libsession/messaging/StorageProtocol.kt | 3 ++- .../libsession/messaging/opengroups/OpenGroupMessage.kt | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index d4096b1083..34b5e760bc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -330,6 +330,10 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context, DatabaseFactory.getLokiMessageDatabase(context).setServerID(messageID, serverID) } + override fun getQuoteServerID(quoteID: Long, publicKey: String): Long? { + return DatabaseFactory.getLokiMessageDatabase(context).getQuoteServerID(quoteID, publicKey) + } + override fun markAsSent(timestamp: Long, author: String) { val database = DatabaseFactory.getMmsSmsDatabase(context) val messageRecord = database.getMessageFor(timestamp, author) ?: return diff --git a/libsession/src/main/java/org/session/libsession/messaging/StorageProtocol.kt b/libsession/src/main/java/org/session/libsession/messaging/StorageProtocol.kt index a7bb7e0dc1..bedb77b58c 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/StorageProtocol.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/StorageProtocol.kt @@ -59,6 +59,8 @@ interface StorageProtocol { fun getThreadID(openGroupID: String): String? fun getAllOpenGroups(): Map fun addOpenGroup(server: String, channel: Long) + fun setOpenGroupServerMessageID(messageID: Long, serverID: Long) + fun getQuoteServerID(quoteID: Long, publicKey: String): Long? // Open Group Public Keys fun getOpenGroupPublicKey(server: String): String? @@ -94,7 +96,6 @@ interface StorageProtocol { fun persistAttachments(messageId: Long, attachments: List): List fun getMessageIdInDatabase(timestamp: Long, author: String): Long? - fun setOpenGroupServerMessageID(messageID: Long, serverID: Long) fun markAsSent(timestamp: Long, author: String) fun markUnidentified(timestamp: Long, author: String) fun setErrorMessage(timestamp: Long, author: String, error: Exception) diff --git a/libsession/src/main/java/org/session/libsession/messaging/opengroups/OpenGroupMessage.kt b/libsession/src/main/java/org/session/libsession/messaging/opengroups/OpenGroupMessage.kt index 07c9c9836b..4205779058 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/opengroups/OpenGroupMessage.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/opengroups/OpenGroupMessage.kt @@ -33,8 +33,8 @@ data class OpenGroupMessage( val quote = message.quote if (quote != null && quote.isValid()) { val quotedMessageBody = quote.text ?: quote.timestamp!!.toString() - // FIXME: For some reason the server always returns a 500 if quotedMessageServerID is set... - Quote(quote.timestamp!!, quote.publicKey!!, quotedMessageBody, null) + val serverID = storage.getQuoteServerID(quote.timestamp!!, quote.publicKey!!) + Quote(quote.timestamp!!, quote.publicKey!!, quotedMessageBody, serverID) } else { null }