mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
Add feature flags for private groups, forums and blogs
This commit is contained in:
@@ -10,4 +10,10 @@ public interface FeatureFlags {
|
||||
boolean shouldEnableProfilePictures();
|
||||
|
||||
boolean shouldEnableDisappearingMessages();
|
||||
|
||||
boolean shouldEnablePrivateGroupsInCore();
|
||||
|
||||
boolean shouldEnableForumsInCore();
|
||||
|
||||
boolean shouldEnableBlogsInCore();
|
||||
}
|
||||
|
||||
@@ -24,6 +24,21 @@ public class TestFeatureFlagModule {
|
||||
public boolean shouldEnableDisappearingMessages() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldEnablePrivateGroupsInCore() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldEnableForumsInCore() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldEnableBlogsInCore() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -339,6 +339,21 @@ public class AppModule {
|
||||
public boolean shouldEnableDisappearingMessages() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldEnablePrivateGroupsInCore() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldEnableForumsInCore() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldEnableBlogsInCore() {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.briarproject.briar.blog;
|
||||
|
||||
import org.briarproject.bramble.api.FeatureFlags;
|
||||
import org.briarproject.bramble.api.client.ClientHelper;
|
||||
import org.briarproject.bramble.api.contact.ContactManager;
|
||||
import org.briarproject.bramble.api.data.MetadataEncoder;
|
||||
@@ -35,7 +36,10 @@ public class BlogModule {
|
||||
@Singleton
|
||||
BlogManager provideBlogManager(BlogManagerImpl blogManager,
|
||||
LifecycleManager lifecycleManager, ContactManager contactManager,
|
||||
ValidationManager validationManager) {
|
||||
ValidationManager validationManager, FeatureFlags featureFlags) {
|
||||
if (!featureFlags.shouldEnableBlogsInCore()) {
|
||||
return blogManager;
|
||||
}
|
||||
lifecycleManager.registerOpenDatabaseHook(blogManager);
|
||||
contactManager.registerContactHook(blogManager);
|
||||
validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
|
||||
@@ -60,12 +64,14 @@ public class BlogModule {
|
||||
ValidationManager validationManager, GroupFactory groupFactory,
|
||||
MessageFactory messageFactory, BlogFactory blogFactory,
|
||||
ClientHelper clientHelper, MetadataEncoder metadataEncoder,
|
||||
Clock clock) {
|
||||
Clock clock, FeatureFlags featureFlags) {
|
||||
BlogPostValidator validator = new BlogPostValidator(groupFactory,
|
||||
messageFactory, blogFactory, clientHelper, metadataEncoder,
|
||||
clock);
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
if (featureFlags.shouldEnableBlogsInCore()) {
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
}
|
||||
return validator;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.briarproject.briar.feed;
|
||||
|
||||
import org.briarproject.bramble.api.FeatureFlags;
|
||||
import org.briarproject.bramble.api.event.EventBus;
|
||||
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
|
||||
import org.briarproject.briar.api.blog.BlogManager;
|
||||
@@ -23,7 +24,10 @@ public class FeedModule {
|
||||
@Singleton
|
||||
FeedManager provideFeedManager(FeedManagerImpl feedManager,
|
||||
LifecycleManager lifecycleManager, EventBus eventBus,
|
||||
BlogManager blogManager) {
|
||||
BlogManager blogManager, FeatureFlags featureFlags) {
|
||||
if (!featureFlags.shouldEnableBlogsInCore()) {
|
||||
return feedManager;
|
||||
}
|
||||
lifecycleManager.registerOpenDatabaseHook(feedManager);
|
||||
eventBus.addListener(feedManager);
|
||||
blogManager.registerRemoveBlogHook(feedManager);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.briarproject.briar.forum;
|
||||
|
||||
import org.briarproject.bramble.api.FeatureFlags;
|
||||
import org.briarproject.bramble.api.client.ClientHelper;
|
||||
import org.briarproject.bramble.api.data.MetadataEncoder;
|
||||
import org.briarproject.bramble.api.sync.validation.ValidationManager;
|
||||
@@ -30,7 +31,11 @@ public class ForumModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
ForumManager provideForumManager(ForumManagerImpl forumManager,
|
||||
ValidationManager validationManager) {
|
||||
ValidationManager validationManager,
|
||||
FeatureFlags featureFlags) {
|
||||
if (!featureFlags.shouldEnableForumsInCore()) {
|
||||
return forumManager;
|
||||
}
|
||||
validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
|
||||
forumManager);
|
||||
return forumManager;
|
||||
@@ -51,11 +56,14 @@ public class ForumModule {
|
||||
@Singleton
|
||||
ForumPostValidator provideForumPostValidator(
|
||||
ValidationManager validationManager, ClientHelper clientHelper,
|
||||
MetadataEncoder metadataEncoder, Clock clock) {
|
||||
MetadataEncoder metadataEncoder, Clock clock,
|
||||
FeatureFlags featureFlags) {
|
||||
ForumPostValidator validator = new ForumPostValidator(clientHelper,
|
||||
metadataEncoder, clock);
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
if (featureFlags.shouldEnableForumsInCore()) {
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
}
|
||||
return validator;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.briarproject.briar.privategroup;
|
||||
|
||||
import org.briarproject.bramble.api.FeatureFlags;
|
||||
import org.briarproject.bramble.api.client.ClientHelper;
|
||||
import org.briarproject.bramble.api.data.MetadataEncoder;
|
||||
import org.briarproject.bramble.api.sync.validation.ValidationManager;
|
||||
@@ -32,7 +33,11 @@ public class PrivateGroupModule {
|
||||
@Singleton
|
||||
PrivateGroupManager provideGroupManager(
|
||||
PrivateGroupManagerImpl groupManager,
|
||||
ValidationManager validationManager) {
|
||||
ValidationManager validationManager,
|
||||
FeatureFlags featureFlags) {
|
||||
if (!featureFlags.shouldEnablePrivateGroupsInCore()) {
|
||||
return groupManager;
|
||||
}
|
||||
validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
|
||||
groupManager);
|
||||
return groupManager;
|
||||
@@ -56,12 +61,14 @@ public class PrivateGroupModule {
|
||||
PrivateGroupFactory privateGroupFactory,
|
||||
ClientHelper clientHelper, MetadataEncoder metadataEncoder,
|
||||
Clock clock, GroupInvitationFactory groupInvitationFactory,
|
||||
ValidationManager validationManager) {
|
||||
ValidationManager validationManager, FeatureFlags featureFlags) {
|
||||
GroupMessageValidator validator = new GroupMessageValidator(
|
||||
privateGroupFactory, clientHelper, metadataEncoder, clock,
|
||||
groupInvitationFactory);
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
if (featureFlags.shouldEnablePrivateGroupsInCore()) {
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
}
|
||||
return validator;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.briarproject.briar.privategroup.invitation;
|
||||
|
||||
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;
|
||||
@@ -43,7 +44,10 @@ public class GroupInvitationModule {
|
||||
PrivateGroupManager privateGroupManager,
|
||||
ConversationManager conversationManager,
|
||||
ClientVersioningManager clientVersioningManager,
|
||||
CleanupManager cleanupManager) {
|
||||
CleanupManager cleanupManager, FeatureFlags featureFlags) {
|
||||
if (!featureFlags.shouldEnablePrivateGroupsInCore()) {
|
||||
return groupInvitationManager;
|
||||
}
|
||||
lifecycleManager.registerOpenDatabaseHook(groupInvitationManager);
|
||||
validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
|
||||
groupInvitationManager);
|
||||
@@ -69,12 +73,15 @@ public class GroupInvitationModule {
|
||||
ClientHelper clientHelper, MetadataEncoder metadataEncoder,
|
||||
Clock clock, PrivateGroupFactory privateGroupFactory,
|
||||
MessageEncoder messageEncoder,
|
||||
ValidationManager validationManager) {
|
||||
ValidationManager validationManager,
|
||||
FeatureFlags featureFlags) {
|
||||
GroupInvitationValidator validator = new GroupInvitationValidator(
|
||||
clientHelper, metadataEncoder, clock, privateGroupFactory,
|
||||
messageEncoder);
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
if (featureFlags.shouldEnablePrivateGroupsInCore()) {
|
||||
validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
|
||||
validator);
|
||||
}
|
||||
return validator;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.briarproject.briar.sharing;
|
||||
|
||||
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;
|
||||
@@ -60,12 +61,15 @@ public class SharingModule {
|
||||
BlogSharingValidator provideBlogSharingValidator(
|
||||
ValidationManager validationManager, MessageEncoder messageEncoder,
|
||||
ClientHelper clientHelper, MetadataEncoder metadataEncoder,
|
||||
Clock clock, BlogFactory blogFactory) {
|
||||
Clock clock, BlogFactory blogFactory, FeatureFlags featureFlags) {
|
||||
BlogSharingValidator validator = new BlogSharingValidator(
|
||||
messageEncoder, clientHelper, metadataEncoder, clock,
|
||||
blogFactory);
|
||||
validationManager.registerMessageValidator(BlogSharingManager.CLIENT_ID,
|
||||
BlogSharingManager.MAJOR_VERSION, validator);
|
||||
if (featureFlags.shouldEnableBlogsInCore()) {
|
||||
validationManager.registerMessageValidator(
|
||||
BlogSharingManager.CLIENT_ID,
|
||||
BlogSharingManager.MAJOR_VERSION, validator);
|
||||
}
|
||||
return validator;
|
||||
}
|
||||
|
||||
@@ -77,7 +81,10 @@ public class SharingModule {
|
||||
ConversationManager conversationManager, BlogManager blogManager,
|
||||
ClientVersioningManager clientVersioningManager,
|
||||
BlogSharingManagerImpl blogSharingManager,
|
||||
CleanupManager cleanupManager) {
|
||||
CleanupManager cleanupManager, FeatureFlags featureFlags) {
|
||||
if (!featureFlags.shouldEnableBlogsInCore()) {
|
||||
return blogSharingManager;
|
||||
}
|
||||
lifecycleManager.registerOpenDatabaseHook(blogSharingManager);
|
||||
contactManager.registerContactHook(blogSharingManager);
|
||||
validationManager.registerIncomingMessageHook(
|
||||
@@ -122,13 +129,15 @@ public class SharingModule {
|
||||
ForumSharingValidator provideForumSharingValidator(
|
||||
ValidationManager validationManager, MessageEncoder messageEncoder,
|
||||
ClientHelper clientHelper, MetadataEncoder metadataEncoder,
|
||||
Clock clock, ForumFactory forumFactory) {
|
||||
Clock clock, ForumFactory forumFactory, FeatureFlags featureFlags) {
|
||||
ForumSharingValidator validator = new ForumSharingValidator(
|
||||
messageEncoder, clientHelper, metadataEncoder, clock,
|
||||
forumFactory);
|
||||
validationManager.registerMessageValidator(
|
||||
ForumSharingManager.CLIENT_ID,
|
||||
ForumSharingManager.MAJOR_VERSION, validator);
|
||||
if (featureFlags.shouldEnableForumsInCore()) {
|
||||
validationManager.registerMessageValidator(
|
||||
ForumSharingManager.CLIENT_ID,
|
||||
ForumSharingManager.MAJOR_VERSION, validator);
|
||||
}
|
||||
return validator;
|
||||
}
|
||||
|
||||
@@ -140,7 +149,10 @@ public class SharingModule {
|
||||
ConversationManager conversationManager, ForumManager forumManager,
|
||||
ClientVersioningManager clientVersioningManager,
|
||||
ForumSharingManagerImpl forumSharingManager,
|
||||
CleanupManager cleanupManager) {
|
||||
CleanupManager cleanupManager, FeatureFlags featureFlags) {
|
||||
if (!featureFlags.shouldEnableForumsInCore()) {
|
||||
return forumSharingManager;
|
||||
}
|
||||
lifecycleManager.registerOpenDatabaseHook(forumSharingManager);
|
||||
contactManager.registerContactHook(forumSharingManager);
|
||||
validationManager.registerIncomingMessageHook(
|
||||
|
||||
@@ -107,5 +107,8 @@ internal class HeadlessModule(private val appDir: File) {
|
||||
override fun shouldEnableImageAttachments() = false
|
||||
override fun shouldEnableProfilePictures() = false
|
||||
override fun shouldEnableDisappearingMessages() = false
|
||||
override fun shouldEnablePrivateGroupsInCore() = false
|
||||
override fun shouldEnableForumsInCore() = true
|
||||
override fun shouldEnableBlogsInCore() = true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user