From 9cf292589bf1960154fe081a0f8fd9d772f92f48 Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Wed, 10 Feb 2021 09:37:20 +1100 Subject: [PATCH] only handle the first configuration message --- .../loki/activities/CreateClosedGroupActivity.kt | 2 -- .../securesms/loki/protocol/MultiDeviceProtocol.kt | 2 ++ .../libsession/utilities/TextSecurePreferences.kt | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt index 8521502d81..af0f5cc57b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/CreateClosedGroupActivity.kt @@ -111,8 +111,6 @@ class CreateClosedGroupActivity : PassphraseRequiredActionBarActivity(), LoaderM isLoading = true loaderContainer.fadeIn() ClosedGroupsProtocolV2.createClosedGroup(this, name.toString(), selectedMembers + setOf( userPublicKey )).successUi { groupID -> - // Force sync configuration message - MultiDeviceProtocol.forceSyncConfigurationNowIfNeeded(this) loaderContainer.fadeOut() isLoading = false val threadID = DatabaseFactory.getThreadDatabase(this).getOrCreateThreadIdFor(Recipient.from(this, Address.fromSerialized(groupID), false)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt index bb1ce53fca..a248d6647c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/protocol/MultiDeviceProtocol.kt @@ -59,6 +59,7 @@ object MultiDeviceProtocol { @JvmStatic fun handleConfigurationMessage(context: Context, content: SignalServiceProtos.Content, senderPublicKey: String) { + if (TextSecurePreferences.getConfigurationMessageSynced(context)) return val configurationMessage = ConfigurationMessage.fromProto(content) ?: return val userPublicKey = TextSecurePreferences.getLocalNumber(context) ?: return if (senderPublicKey != userPublicKey) return @@ -85,5 +86,6 @@ object MultiDeviceProtocol { if (allOpenGroups.contains(openGroup)) continue OpenGroupUtilities.addGroup(context, openGroup, 1) } + TextSecurePreferences.setConfigurationMessageSynced(context, true) } } \ No newline at end of file diff --git a/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt b/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt index d697b06740..8d4581f18a 100644 --- a/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt +++ b/libsession/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt @@ -131,6 +131,7 @@ object TextSecurePreferences { // region Multi Device private const val IS_USING_MULTI_DEVICE = "pref_is_using_multi_device" private const val LAST_CONFIGURATION_SYNC_TIME = "pref_last_configuration_sync_time" + private const val CONFIGURATION_SYNCED = "pref_configuration_synced" @JvmStatic fun isUsingMultiDevice(context: Context): Boolean { @@ -152,6 +153,16 @@ object TextSecurePreferences { setLongPreference(context, LAST_CONFIGURATION_SYNC_TIME, value) } + @JvmStatic + fun getConfigurationMessageSynced(context: Context): Boolean { + return getBooleanPreference(context, CONFIGURATION_SYNCED, false) + } + + @JvmStatic + fun setConfigurationMessageSynced(context: Context, value: Boolean) { + setBooleanPreference(context, CONFIGURATION_SYNCED, value) + } + @JvmStatic fun isUsingFCM(context: Context): Boolean { return getBooleanPreference(context, IS_USING_FCM, false)