From 7810e7e8482239d5d89b12933141b6ebf8cd9c2c Mon Sep 17 00:00:00 2001 From: akwizgran Date: Tue, 18 Apr 2023 12:37:33 +0100 Subject: [PATCH 1/2] Enable mailbox support in release builds. --- .../org/briarproject/bramble/api/FeatureFlags.java | 2 +- .../bramble/mailbox/MailboxModule.java | 8 ++++---- .../bramble/test/TestFeatureFlagModule.java | 2 +- .../org/briarproject/briar/android/AppModule.java | 7 +++---- .../briar/android/settings/SettingsFragment.java | 14 +++++--------- .../briar/android/settings/SettingsViewModel.java | 4 ---- .../briarproject/briar/headless/HeadlessModule.kt | 2 +- 7 files changed, 15 insertions(+), 24 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 a857ac7ce..e422c047f 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,7 +11,7 @@ public interface FeatureFlags { boolean shouldEnableDisappearingMessages(); - boolean shouldEnableMailbox(); + boolean shouldEnableMailboxInCore(); boolean shouldEnablePrivateGroupsInCore(); diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java index 29509cd47..0f8e4dc0f 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java @@ -80,7 +80,7 @@ public class MailboxModule { FeatureFlags featureFlags) { MailboxUpdateValidator validator = new MailboxUpdateValidator( clientHelper, metadataEncoder, clock); - if (featureFlags.shouldEnableMailbox()) { + if (featureFlags.shouldEnableMailboxInCore()) { validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION, validator); } @@ -101,7 +101,7 @@ public class MailboxModule { ClientVersioningManager clientVersioningManager, MailboxSettingsManager mailboxSettingsManager, MailboxUpdateManagerImpl mailboxUpdateManager) { - if (featureFlags.shouldEnableMailbox()) { + if (featureFlags.shouldEnableMailboxInCore()) { lifecycleManager.registerOpenDatabaseHook(mailboxUpdateManager); validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION, mailboxUpdateManager); @@ -117,7 +117,7 @@ public class MailboxModule { @Singleton MailboxFileManager provideMailboxFileManager(FeatureFlags featureFlags, EventBus eventBus, MailboxFileManagerImpl mailboxFileManager) { - if (featureFlags.shouldEnableMailbox()) { + if (featureFlags.shouldEnableMailboxInCore()) { eventBus.addListener(mailboxFileManager); } return mailboxFileManager; @@ -167,7 +167,7 @@ public class MailboxModule { dbExecutor, db, contactManager, pluginManager, mailboxSettingsManager, mailboxUpdateManager, mailboxClientFactory, reachabilityMonitor); - if (featureFlags.shouldEnableMailbox()) { + if (featureFlags.shouldEnableMailboxInCore()) { lifecycleManager.registerService(manager); eventBus.addListener(manager); } 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 c3f92b08a..5f1bd7fbf 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 @@ -26,7 +26,7 @@ public class TestFeatureFlagModule { } @Override - public boolean shouldEnableMailbox() { + public boolean shouldEnableMailboxInCore() { 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 d58039215..020c3d681 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 @@ -33,7 +33,6 @@ import org.briarproject.bramble.plugin.tcp.AndroidLanTcpPluginFactory; import org.briarproject.bramble.plugin.tor.AndroidTorPluginFactory; import org.briarproject.bramble.util.AndroidUtils; import org.briarproject.bramble.util.StringUtils; -import org.briarproject.briar.BuildConfig; import org.briarproject.briar.android.account.DozeHelperModule; import org.briarproject.briar.android.account.LockManagerImpl; import org.briarproject.briar.android.account.SetupModule; @@ -212,7 +211,7 @@ public class AppModule { @Override public Collection getSimplexFactories() { List simplex = new ArrayList<>(); - if (featureFlags.shouldEnableMailbox()) simplex.add(mailbox); + if (featureFlags.shouldEnableMailboxInCore()) simplex.add(mailbox); if (SDK_INT >= 19) simplex.add(drive); return simplex; } @@ -354,8 +353,8 @@ public class AppModule { } @Override - public boolean shouldEnableMailbox() { - return BuildConfig.DEBUG; + public boolean shouldEnableMailboxInCore() { + return true; } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java index beae77740..652bfe797 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java @@ -83,15 +83,11 @@ public class SettingsFragment extends PreferenceFragmentCompat { Preference prefMailbox = requireNonNull(findPreference(PREF_KEY_MAILBOX)); - if (viewModel.shouldEnableMailbox()) { - prefMailbox.setOnPreferenceClickListener(preference -> { - Intent i = new Intent(requireContext(), MailboxActivity.class); - startActivity(i); - return true; - }); - } else { - prefMailbox.setVisible(false); - } + prefMailbox.setOnPreferenceClickListener(preference -> { + Intent i = new Intent(requireContext(), MailboxActivity.class); + startActivity(i); + return true; + }); Preference prefFeedback = requireNonNull(findPreference(PREF_KEY_FEEDBACK)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsViewModel.java index e8292f81e..4f93848b5 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsViewModel.java @@ -161,10 +161,6 @@ class SettingsViewModel extends DbViewModel implements EventListener { return featureFlags.shouldEnableProfilePictures(); } - boolean shouldEnableMailbox() { - return featureFlags.shouldEnableMailbox(); - } - private void loadOwnIdentityInfo() { runOnDbThread(() -> { try { 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 d15db40dd..51bf98f64 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 @@ -116,7 +116,7 @@ internal class HeadlessModule(private val appDir: File) { override fun shouldEnableImageAttachments() = false override fun shouldEnableProfilePictures() = false override fun shouldEnableDisappearingMessages() = false - override fun shouldEnableMailbox() = false + override fun shouldEnableMailboxInCore() = true override fun shouldEnablePrivateGroupsInCore() = false override fun shouldEnableForumsInCore() = true override fun shouldEnableBlogsInCore() = true From 07e56f7086f58ca94b17578b9ad42f613107cdf3 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Tue, 18 Apr 2023 14:18:58 +0100 Subject: [PATCH 2/2] Remove mailbox feature flag. --- .../bramble/api/FeatureFlags.java | 2 - .../bramble/mailbox/MailboxModule.java | 42 +++++++------------ .../bramble/test/TestFeatureFlagModule.java | 5 --- .../briarproject/briar/android/AppModule.java | 7 +--- .../briar/headless/HeadlessModule.kt | 1 - 5 files changed, 16 insertions(+), 41 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 e422c047f..df093059d 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,8 +11,6 @@ public interface FeatureFlags { boolean shouldEnableDisappearingMessages(); - boolean shouldEnableMailboxInCore(); - boolean shouldEnablePrivateGroupsInCore(); boolean shouldEnableForumsInCore(); diff --git a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java index 0f8e4dc0f..5be56d9c4 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/mailbox/MailboxModule.java @@ -1,6 +1,5 @@ package org.briarproject.bramble.mailbox; -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; @@ -76,14 +75,11 @@ public class MailboxModule { ValidationManager validationManager, ClientHelper clientHelper, MetadataEncoder metadataEncoder, - Clock clock, - FeatureFlags featureFlags) { + Clock clock) { MailboxUpdateValidator validator = new MailboxUpdateValidator( clientHelper, metadataEncoder, clock); - if (featureFlags.shouldEnableMailboxInCore()) { - validationManager.registerMessageValidator(CLIENT_ID, - MAJOR_VERSION, validator); - } + validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION, + validator); return validator; } @@ -95,31 +91,26 @@ public class MailboxModule { @Provides @Singleton MailboxUpdateManager provideMailboxUpdateManager( - FeatureFlags featureFlags, LifecycleManager lifecycleManager, ValidationManager validationManager, ContactManager contactManager, ClientVersioningManager clientVersioningManager, MailboxSettingsManager mailboxSettingsManager, MailboxUpdateManagerImpl mailboxUpdateManager) { - if (featureFlags.shouldEnableMailboxInCore()) { - lifecycleManager.registerOpenDatabaseHook(mailboxUpdateManager); - validationManager.registerIncomingMessageHook(CLIENT_ID, - MAJOR_VERSION, mailboxUpdateManager); - contactManager.registerContactHook(mailboxUpdateManager); - clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, - MINOR_VERSION, mailboxUpdateManager); - mailboxSettingsManager.registerMailboxHook(mailboxUpdateManager); - } + lifecycleManager.registerOpenDatabaseHook(mailboxUpdateManager); + validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION, + mailboxUpdateManager); + contactManager.registerContactHook(mailboxUpdateManager); + clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, + MINOR_VERSION, mailboxUpdateManager); + mailboxSettingsManager.registerMailboxHook(mailboxUpdateManager); return mailboxUpdateManager; } @Provides @Singleton - MailboxFileManager provideMailboxFileManager(FeatureFlags featureFlags, - EventBus eventBus, MailboxFileManagerImpl mailboxFileManager) { - if (featureFlags.shouldEnableMailboxInCore()) { - eventBus.addListener(mailboxFileManager); - } + MailboxFileManager provideMailboxFileManager(EventBus eventBus, + MailboxFileManagerImpl mailboxFileManager) { + eventBus.addListener(mailboxFileManager); return mailboxFileManager; } @@ -160,17 +151,14 @@ public class MailboxModule { MailboxUpdateManager mailboxUpdateManager, MailboxClientFactory mailboxClientFactory, TorReachabilityMonitor reachabilityMonitor, - FeatureFlags featureFlags, LifecycleManager lifecycleManager, EventBus eventBus) { MailboxClientManager manager = new MailboxClientManager(eventExecutor, dbExecutor, db, contactManager, pluginManager, mailboxSettingsManager, mailboxUpdateManager, mailboxClientFactory, reachabilityMonitor); - if (featureFlags.shouldEnableMailboxInCore()) { - lifecycleManager.registerService(manager); - eventBus.addListener(manager); - } + lifecycleManager.registerService(manager); + eventBus.addListener(manager); return manager; } } 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 5f1bd7fbf..6e867ffbe 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,11 +25,6 @@ public class TestFeatureFlagModule { return true; } - @Override - public boolean shouldEnableMailboxInCore() { - 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 020c3d681..a8184d8ff 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 @@ -211,7 +211,7 @@ public class AppModule { @Override public Collection getSimplexFactories() { List simplex = new ArrayList<>(); - if (featureFlags.shouldEnableMailboxInCore()) simplex.add(mailbox); + simplex.add(mailbox); if (SDK_INT >= 19) simplex.add(drive); return simplex; } @@ -352,11 +352,6 @@ public class AppModule { return true; } - @Override - public boolean shouldEnableMailboxInCore() { - return true; - } - @Override public boolean shouldEnablePrivateGroupsInCore() { return true; 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 51bf98f64..983b230b8 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 @@ -116,7 +116,6 @@ internal class HeadlessModule(private val appDir: File) { override fun shouldEnableImageAttachments() = false override fun shouldEnableProfilePictures() = false override fun shouldEnableDisappearingMessages() = false - override fun shouldEnableMailboxInCore() = true override fun shouldEnablePrivateGroupsInCore() = false override fun shouldEnableForumsInCore() = true override fun shouldEnableBlogsInCore() = true