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