Merge branch 'enable-mailbox-in-release-builds' into 'master'

Enable mailbox support in release builds

See merge request briar/briar!1789
This commit is contained in:
Torsten Grote
2023-04-19 13:17:53 +00:00
7 changed files with 21 additions and 55 deletions

View File

@@ -11,8 +11,6 @@ public interface FeatureFlags {
boolean shouldEnableDisappearingMessages(); boolean shouldEnableDisappearingMessages();
boolean shouldEnableMailbox();
boolean shouldEnablePrivateGroupsInCore(); boolean shouldEnablePrivateGroupsInCore();
boolean shouldEnableForumsInCore(); boolean shouldEnableForumsInCore();

View File

@@ -1,6 +1,5 @@
package org.briarproject.bramble.mailbox; package org.briarproject.bramble.mailbox;
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;
@@ -76,14 +75,11 @@ public class MailboxModule {
ValidationManager validationManager, ValidationManager validationManager,
ClientHelper clientHelper, ClientHelper clientHelper,
MetadataEncoder metadataEncoder, MetadataEncoder metadataEncoder,
Clock clock, Clock clock) {
FeatureFlags featureFlags) {
MailboxUpdateValidator validator = new MailboxUpdateValidator( MailboxUpdateValidator validator = new MailboxUpdateValidator(
clientHelper, metadataEncoder, clock); clientHelper, metadataEncoder, clock);
if (featureFlags.shouldEnableMailbox()) { validationManager.registerMessageValidator(CLIENT_ID, MAJOR_VERSION,
validationManager.registerMessageValidator(CLIENT_ID, validator);
MAJOR_VERSION, validator);
}
return validator; return validator;
} }
@@ -95,31 +91,26 @@ public class MailboxModule {
@Provides @Provides
@Singleton @Singleton
MailboxUpdateManager provideMailboxUpdateManager( MailboxUpdateManager provideMailboxUpdateManager(
FeatureFlags featureFlags,
LifecycleManager lifecycleManager, LifecycleManager lifecycleManager,
ValidationManager validationManager, ContactManager contactManager, ValidationManager validationManager, ContactManager contactManager,
ClientVersioningManager clientVersioningManager, ClientVersioningManager clientVersioningManager,
MailboxSettingsManager mailboxSettingsManager, MailboxSettingsManager mailboxSettingsManager,
MailboxUpdateManagerImpl mailboxUpdateManager) { MailboxUpdateManagerImpl mailboxUpdateManager) {
if (featureFlags.shouldEnableMailbox()) { lifecycleManager.registerOpenDatabaseHook(mailboxUpdateManager);
lifecycleManager.registerOpenDatabaseHook(mailboxUpdateManager); validationManager.registerIncomingMessageHook(CLIENT_ID, MAJOR_VERSION,
validationManager.registerIncomingMessageHook(CLIENT_ID, mailboxUpdateManager);
MAJOR_VERSION, mailboxUpdateManager); contactManager.registerContactHook(mailboxUpdateManager);
contactManager.registerContactHook(mailboxUpdateManager); clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION,
clientVersioningManager.registerClient(CLIENT_ID, MAJOR_VERSION, MINOR_VERSION, mailboxUpdateManager);
MINOR_VERSION, mailboxUpdateManager); mailboxSettingsManager.registerMailboxHook(mailboxUpdateManager);
mailboxSettingsManager.registerMailboxHook(mailboxUpdateManager);
}
return mailboxUpdateManager; return mailboxUpdateManager;
} }
@Provides @Provides
@Singleton @Singleton
MailboxFileManager provideMailboxFileManager(FeatureFlags featureFlags, MailboxFileManager provideMailboxFileManager(EventBus eventBus,
EventBus eventBus, MailboxFileManagerImpl mailboxFileManager) { MailboxFileManagerImpl mailboxFileManager) {
if (featureFlags.shouldEnableMailbox()) { eventBus.addListener(mailboxFileManager);
eventBus.addListener(mailboxFileManager);
}
return mailboxFileManager; return mailboxFileManager;
} }
@@ -160,17 +151,14 @@ public class MailboxModule {
MailboxUpdateManager mailboxUpdateManager, MailboxUpdateManager mailboxUpdateManager,
MailboxClientFactory mailboxClientFactory, MailboxClientFactory mailboxClientFactory,
TorReachabilityMonitor reachabilityMonitor, TorReachabilityMonitor reachabilityMonitor,
FeatureFlags featureFlags,
LifecycleManager lifecycleManager, LifecycleManager lifecycleManager,
EventBus eventBus) { EventBus eventBus) {
MailboxClientManager manager = new MailboxClientManager(eventExecutor, MailboxClientManager manager = new MailboxClientManager(eventExecutor,
dbExecutor, db, contactManager, pluginManager, dbExecutor, db, contactManager, pluginManager,
mailboxSettingsManager, mailboxUpdateManager, mailboxSettingsManager, mailboxUpdateManager,
mailboxClientFactory, reachabilityMonitor); mailboxClientFactory, reachabilityMonitor);
if (featureFlags.shouldEnableMailbox()) { lifecycleManager.registerService(manager);
lifecycleManager.registerService(manager); eventBus.addListener(manager);
eventBus.addListener(manager);
}
return manager; return manager;
} }
} }

View File

@@ -25,11 +25,6 @@ public class TestFeatureFlagModule {
return true; return true;
} }
@Override
public boolean shouldEnableMailbox() {
return true;
}
@Override @Override
public boolean shouldEnablePrivateGroupsInCore() { public boolean shouldEnablePrivateGroupsInCore() {
return true; return true;

View File

@@ -33,7 +33,6 @@ import org.briarproject.bramble.plugin.tcp.AndroidLanTcpPluginFactory;
import org.briarproject.bramble.plugin.tor.AndroidTorPluginFactory; import org.briarproject.bramble.plugin.tor.AndroidTorPluginFactory;
import org.briarproject.bramble.util.AndroidUtils; import org.briarproject.bramble.util.AndroidUtils;
import org.briarproject.bramble.util.StringUtils; import org.briarproject.bramble.util.StringUtils;
import org.briarproject.briar.BuildConfig;
import org.briarproject.briar.android.account.DozeHelperModule; import org.briarproject.briar.android.account.DozeHelperModule;
import org.briarproject.briar.android.account.LockManagerImpl; import org.briarproject.briar.android.account.LockManagerImpl;
import org.briarproject.briar.android.account.SetupModule; import org.briarproject.briar.android.account.SetupModule;
@@ -212,7 +211,7 @@ public class AppModule {
@Override @Override
public Collection<SimplexPluginFactory> getSimplexFactories() { public Collection<SimplexPluginFactory> getSimplexFactories() {
List<SimplexPluginFactory> simplex = new ArrayList<>(); List<SimplexPluginFactory> simplex = new ArrayList<>();
if (featureFlags.shouldEnableMailbox()) simplex.add(mailbox); simplex.add(mailbox);
if (SDK_INT >= 19) simplex.add(drive); if (SDK_INT >= 19) simplex.add(drive);
return simplex; return simplex;
} }
@@ -353,11 +352,6 @@ public class AppModule {
return true; return true;
} }
@Override
public boolean shouldEnableMailbox() {
return BuildConfig.DEBUG;
}
@Override @Override
public boolean shouldEnablePrivateGroupsInCore() { public boolean shouldEnablePrivateGroupsInCore() {
return true; return true;

View File

@@ -83,15 +83,11 @@ public class SettingsFragment extends PreferenceFragmentCompat {
Preference prefMailbox = Preference prefMailbox =
requireNonNull(findPreference(PREF_KEY_MAILBOX)); requireNonNull(findPreference(PREF_KEY_MAILBOX));
if (viewModel.shouldEnableMailbox()) { prefMailbox.setOnPreferenceClickListener(preference -> {
prefMailbox.setOnPreferenceClickListener(preference -> { Intent i = new Intent(requireContext(), MailboxActivity.class);
Intent i = new Intent(requireContext(), MailboxActivity.class); startActivity(i);
startActivity(i); return true;
return true; });
});
} else {
prefMailbox.setVisible(false);
}
Preference prefFeedback = Preference prefFeedback =
requireNonNull(findPreference(PREF_KEY_FEEDBACK)); requireNonNull(findPreference(PREF_KEY_FEEDBACK));

View File

@@ -161,10 +161,6 @@ class SettingsViewModel extends DbViewModel implements EventListener {
return featureFlags.shouldEnableProfilePictures(); return featureFlags.shouldEnableProfilePictures();
} }
boolean shouldEnableMailbox() {
return featureFlags.shouldEnableMailbox();
}
private void loadOwnIdentityInfo() { private void loadOwnIdentityInfo() {
runOnDbThread(() -> { runOnDbThread(() -> {
try { try {

View File

@@ -116,7 +116,6 @@ 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 shouldEnableMailbox() = false
override fun shouldEnablePrivateGroupsInCore() = false override fun shouldEnablePrivateGroupsInCore() = false
override fun shouldEnableForumsInCore() = true override fun shouldEnableForumsInCore() = true
override fun shouldEnableBlogsInCore() = true override fun shouldEnableBlogsInCore() = true