From 344fff4a7a402247ecdafad061ee23d8a49f5d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= Date: Fri, 28 May 2021 13:52:24 +0200 Subject: [PATCH] Add feature flag for sharing the app via offline hotspot --- .../java/org/briarproject/bramble/api/FeatureFlags.java | 2 ++ .../briarproject/bramble/test/TestFeatureFlagModule.java | 5 +++++ .../java/org/briarproject/briar/android/AppModule.java | 5 +++++ .../briar/android/settings/SettingsFragment.java | 7 +++++++ .../briar/android/settings/SettingsViewModel.java | 4 ++++ .../java/org/briarproject/briar/headless/HeadlessModule.kt | 1 + 6 files changed, 24 insertions(+) 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 0a3aefde4..ba06f2a47 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 @@ -14,4 +14,6 @@ public interface FeatureFlags { boolean shouldEnableConnectViaBluetooth(); boolean shouldEnableTransferData(); + + boolean shouldEnableShareAppViaOfflineHotspot(); } 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 59ec15e23..10e0fc656 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 @@ -34,6 +34,11 @@ public class TestFeatureFlagModule { public boolean shouldEnableTransferData() { return true; } + + @Override + public boolean shouldEnableShareAppViaOfflineHotspot() { + 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 d0ea26f04..78b27dbce 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 @@ -320,6 +320,11 @@ public class AppModule { public boolean shouldEnableTransferData() { return IS_DEBUG_BUILD; } + + @Override + public boolean shouldEnableShareAppViaOfflineHotspot() { + return IS_DEBUG_BUILD; + } }; } } 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 df8543c1a..5f4fd2f16 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 @@ -36,6 +36,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { private static final String PREF_KEY_FEEDBACK = "pref_key_send_feedback"; private static final String PREF_KEY_DEV = "pref_key_dev"; private static final String PREF_KEY_EXPLODE = "pref_key_explode"; + private static final String PREF_KEY_SHARE_APP = "pref_key_share_app"; @Inject ViewModelProvider.Factory viewModelFactory; @@ -85,6 +86,12 @@ public class SettingsFragment extends PreferenceFragmentCompat { PreferenceGroup dev = requireNonNull(findPreference(PREF_KEY_DEV)); dev.setVisible(false); } + + if (!viewModel.shouldEnableShareAppViaOfflineHotspot()) { + Preference shareApp = + requireNonNull(findPreference(PREF_KEY_SHARE_APP)); + shareApp.setVisible(false); + } } @Override 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 ba92042f0..f6aa3da2f 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 @@ -262,4 +262,8 @@ class SettingsViewModel extends DbViewModel implements EventListener { return screenLockTimeout; } + boolean shouldEnableShareAppViaOfflineHotspot() { + return featureFlags.shouldEnableShareAppViaOfflineHotspot(); + } + } 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 66e5a700f..079bc4abd 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 @@ -97,5 +97,6 @@ internal class HeadlessModule(private val appDir: File) { override fun shouldEnableDisappearingMessages() = false override fun shouldEnableConnectViaBluetooth() = false override fun shouldEnableTransferData() = false + override fun shouldEnableShareAppViaOfflineHotspot() = false } }