From c32c58eee75ea5f5a5b0fc99eaa5bf7247ad0f11 Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Tue, 9 Feb 2021 13:16:33 +1100 Subject: [PATCH] add open group through configuration message --- .../main/java/org/thoughtcrime/securesms/database/Storage.kt | 5 +++++ .../securesms/loki/utilities/OpenGroupUtilities.kt | 2 +- .../java/org/session/libsession/messaging/StorageProtocol.kt | 1 + .../messaging/sending_receiving/MessageReceiverHandler.kt | 2 +- 4 files changed, 8 insertions(+), 2 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 bb52fb13e3..8fdcb3b100 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -31,6 +31,7 @@ import org.session.libsignal.service.loki.api.opengroups.PublicChat import org.thoughtcrime.securesms.crypto.IdentityKeyUtil import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper import org.thoughtcrime.securesms.loki.database.LokiThreadDatabase +import org.thoughtcrime.securesms.loki.utilities.OpenGroupUtilities import org.thoughtcrime.securesms.loki.utilities.get import org.thoughtcrime.securesms.loki.utilities.getString import org.thoughtcrime.securesms.mms.IncomingMediaMessage @@ -396,6 +397,10 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context, return DatabaseFactory.getLokiThreadDatabase(context).getAllPublicChats() } + override fun addOpenGroup(server: String, channel: Long) { + OpenGroupUtilities.addGroup(context, server, channel) + } + override fun getAllGroups(): List { return DatabaseFactory.getGroupDatabase(context).allGroups } diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt index f965f370c4..83d86f9f8b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/utilities/OpenGroupUtilities.kt @@ -27,7 +27,7 @@ object OpenGroupUtilities { val groupID = PublicChat.getId(channel, url) val threadID = GroupManager.getOpenGroupThreadID(groupID, context) val openGroup = DatabaseFactory.getLokiThreadDatabase(context).getPublicChat(threadID) - if (openGroup != null) return openGroup + if (openGroup != null) { return openGroup } // Add the new group. val application = ApplicationContext.getInstance(context) 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 856c4154c8..164bf53088 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/StorageProtocol.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/StorageProtocol.kt @@ -58,6 +58,7 @@ interface StorageProtocol { fun getOpenGroup(threadID: String): OpenGroup? fun getThreadID(openGroupID: String): String? fun getAllOpenGroups(): Map + fun addOpenGroup(server: String, channel: Long) // Open Group Public Keys fun getOpenGroupPublicKey(server: String): String? diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageReceiverHandler.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageReceiverHandler.kt index 9157e3d918..8df3e86da2 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageReceiverHandler.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageReceiverHandler.kt @@ -113,7 +113,7 @@ private fun MessageReceiver.handleConfigurationMessage(message: ConfigurationMes val allOpenGroups = storage.getAllOpenGroups().map { it.value.server } for (openGroup in message.openGroups) { if (allOpenGroups.contains(openGroup)) continue - // TODO + storage.addOpenGroup(openGroup, 1) } }