From e8e07414e7a34b72a83043b87f8daff0dfae3e19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= Date: Thu, 6 Jan 2022 14:37:21 +0100 Subject: [PATCH] Add feature flag for introductions --- .../briarproject/bramble/api/FeatureFlags.java | 2 ++ .../bramble/test/TestFeatureFlagModule.java | 5 +++++ .../org/briarproject/briar/android/AppModule.java | 5 +++++ .../briar/introduction/IntroductionModule.java | 15 +++++++++++---- .../briarproject/briar/headless/HeadlessModule.kt | 1 + 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/FeatureFlags.java b/bramble-api/src/main/java/org/briarproject/bramble/api/FeatureFlags.java index df093059d..d18f35f50 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/FeatureFlags.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/FeatureFlags.java @@ -11,6 +11,8 @@ public interface FeatureFlags { boolean shouldEnableDisappearingMessages(); + boolean shouldEnableIntroductionsInCore(); + boolean shouldEnablePrivateGroupsInCore(); boolean shouldEnableForumsInCore(); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/test/TestFeatureFlagModule.java b/bramble-core/src/test/java/org/briarproject/bramble/test/TestFeatureFlagModule.java index 6e867ffbe..1363f8021 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/test/TestFeatureFlagModule.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/test/TestFeatureFlagModule.java @@ -25,6 +25,11 @@ public class TestFeatureFlagModule { return true; } + @Override + public boolean shouldEnableIntroductionsInCore() { + return true; + } + @Override public boolean shouldEnablePrivateGroupsInCore() { return true; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java index 9e570d13a..774098eb3 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java @@ -340,6 +340,11 @@ public class AppModule { return true; } + @Override + public boolean shouldEnableIntroductionsInCore() { + return true; + } + @Override public boolean shouldEnablePrivateGroupsInCore() { return true; diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java index e4529e9a6..9204fb084 100644 --- a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java @@ -1,5 +1,6 @@ package org.briarproject.briar.introduction; +import org.briarproject.bramble.api.FeatureFlags; import org.briarproject.bramble.api.cleanup.CleanupManager; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; @@ -35,12 +36,14 @@ public class IntroductionModule { @Singleton IntroductionValidator provideValidator(ValidationManager validationManager, MessageEncoder messageEncoder, MetadataEncoder metadataEncoder, - ClientHelper clientHelper, Clock clock) { + ClientHelper clientHelper, Clock clock, FeatureFlags featureFlags) { IntroductionValidator introductionValidator = new IntroductionValidator(messageEncoder, clientHelper, metadataEncoder, clock); - validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION, - introductionValidator); + if (featureFlags.shouldEnableIntroductionsInCore()) { + validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION, + introductionValidator); + } return introductionValidator; } @@ -52,7 +55,11 @@ public class IntroductionModule { ConversationManager conversationManager, ClientVersioningManager clientVersioningManager, IntroductionManagerImpl introductionManager, - CleanupManager cleanupManager) { + CleanupManager cleanupManager, + FeatureFlags featureFlags) { + if (!featureFlags.shouldEnableIntroductionsInCore()) { + return introductionManager; + } lifecycleManager.registerOpenDatabaseHook(introductionManager); contactManager.registerContactHook(introductionManager); validationManager.registerIncomingMessageHook(CLIENT_ID, diff --git a/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt b/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt index bc08ed798..e224aa524 100644 --- a/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt +++ b/briar-headless/src/main/java/org/briarproject/briar/headless/HeadlessModule.kt @@ -107,6 +107,7 @@ internal class HeadlessModule(private val appDir: File) { override fun shouldEnableImageAttachments() = false override fun shouldEnableProfilePictures() = false override fun shouldEnableDisappearingMessages() = false + override fun shouldEnableIntroductionsInCore() = false override fun shouldEnablePrivateGroupsInCore() = false override fun shouldEnableForumsInCore() = true override fun shouldEnableBlogsInCore() = true