diff --git a/gradle/variables.gradle b/gradle/variables.gradle
index 108fa0e7e4a2cb3019f3b382926982fd1f32cc30..a91f5b7c05552ffbbbb034df253cd2856dc49a63 100644
--- a/gradle/variables.gradle
+++ b/gradle/variables.gradle
@@ -4,9 +4,9 @@ ext {
nav_version = '2.5.3'
tor_version = '0.4.8.9-1'
obfs4_version = '0.0.14-tor2'
- snowflake_version = '2.5.1'
+ snowflake_version = '2.9.1'
junit_version = '5.7.2'
mockk_version = '1.10.4'
ktlint_plugin_version = '10.2.1'
- onionwrapper_version = '0.0.7'
+ onionwrapper_version = '0.1.0'
}
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 944ff03efa98486fcef1f720b6a7e7fcb77daff4..d137a1b61e2f33dcaa23d85d92c143a3488a0b61 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -3133,44 +3133,44 @@
<sha256 value="9feb0d95ecef6e394b2a55ec4e451ec659f84a705345976053de166b157a0460" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.briarproject" name="onionwrapper-android" version="0.0.7">
- <artifact name="onionwrapper-android-0.0.7.aar">
+ <component group="org.briarproject" name="onionwrapper-android" version="0.1.0">
+ <artifact name="onionwrapper-android-0.1.0.aar">
<sha256 value="d761854dac454616b3e0ca099b2cd17060365ce4316afe495cc7ae86b6c81d15" origin="Generated by Gradle"/>
</artifact>
- <artifact name="onionwrapper-android-0.0.7.module">
- <sha256 value="36ce596cb48dfdb83b1e4a09e4a5c574ed965821c586d0b91a3ebfc341ee236b" origin="Generated by Gradle"/>
+ <artifact name="onionwrapper-android-0.1.0.module">
+ <sha256 value="163912a34b00afc316328a2559355e3cdf965a2bd2db8e75e03a82b3bf86f527" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.briarproject" name="onionwrapper-core" version="0.0.7">
- <artifact name="onionwrapper-core-0.0.7.jar">
- <sha256 value="918b5851f4a05a3bc0835bc7c81d70e598a178c79856fe5c506c261889f4b3fd" origin="Generated by Gradle"/>
+ <component group="org.briarproject" name="onionwrapper-core" version="0.1.0">
+ <artifact name="onionwrapper-core-0.1.0.jar">
+ <sha256 value="3e6631771b891c959403f6145de034c6f9816e7d067808d534f954eef9a1ca35" origin="Generated by Gradle"/>
</artifact>
- <artifact name="onionwrapper-core-0.0.7.module">
- <sha256 value="75ebcd6f55d305a1e45184940b7f48332cdcaafc815a1564b1833993488ea4a5" origin="Generated by Gradle"/>
+ <artifact name="onionwrapper-core-0.1.0.module">
+ <sha256 value="8ccad59794d11502dfd48024cb03ed03f144ab0e7e94b2a9557e34f3e0c7f806" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.briarproject" name="onionwrapper-java" version="0.0.7">
- <artifact name="onionwrapper-java-0.0.7.jar">
- <sha256 value="48115772d4348eab6f35e562ae648dd9d7398adb99e5429afb64a62c82f3d27c" origin="Generated by Gradle"/>
+ <component group="org.briarproject" name="onionwrapper-java" version="0.1.0">
+ <artifact name="onionwrapper-java-0.1.0.jar">
+ <sha256 value="c1a961c73f06d28e2a63c301d4e747398745bfc9709ade4ae3ba8818c6849fe0" origin="Generated by Gradle"/>
</artifact>
- <artifact name="onionwrapper-java-0.0.7.module">
- <sha256 value="1760f9256afbb4ed3603484ce27a77be6912f45819768e95b18845bbf93648a3" origin="Generated by Gradle"/>
+ <artifact name="onionwrapper-java-0.1.0.module">
+ <sha256 value="cabcf088c78de7fca7a71c6242b47d7e72fd7fbcbcaa02c1f6fcf24dcbfd23fe" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.briarproject" name="snowflake-android" version="2.5.1">
- <artifact name="snowflake-android-2.5.1.jar">
- <sha256 value="88ec81c17b1b6fa884d06839dec0330e328b45c89f88c970a213ce91ca8eac87" origin="Generated by Gradle"/>
+ <component group="org.briarproject" name="snowflake-android" version="2.9.1">
+ <artifact name="snowflake-android-2.9.1.jar">
+ <sha256 value="8d6195637edbe3717d205c2e524e9d3cb742b90fc67b10565d16262af134e489" origin="Generated by Gradle"/>
</artifact>
- <artifact name="snowflake-android-2.5.1.pom">
- <sha256 value="982c1b2e81d7f8e8e82013a3b5de3501cb24cece1411a5cd834965d5b40634b3" origin="Generated by Gradle"/>
+ <artifact name="snowflake-android-2.9.1.pom">
+ <sha256 value="550526c404e9a9105e9eae55490eac874b07febce4e64b1053cf357144f7c204" origin="Generated by Gradle"/>
</artifact>
</component>
- <component group="org.briarproject" name="snowflake-linux" version="2.5.1">
- <artifact name="snowflake-linux-2.5.1.jar">
- <sha256 value="edc807dcb7758365970d95525e4749349a27f462d0e2df6505ad1ca65fb296d2" origin="Generated by Gradle"/>
+ <component group="org.briarproject" name="snowflake-linux" version="2.9.1">
+ <artifact name="snowflake-linux-2.9.1.jar">
+ <sha256 value="36b2f406f67a1bf3b4a6cecbba2e153ad939209cc9c22299e4161019dbae0e03" origin="Generated by Gradle"/>
</artifact>
- <artifact name="snowflake-linux-2.5.1.pom">
- <sha256 value="5603bc6b5e8787e478ae8b1cb0a0b66f838503fafa1698bb3b6bd3c503db4d95" origin="Generated by Gradle"/>
+ <artifact name="snowflake-linux-2.9.1.pom">
+ <sha256 value="9aa9b67b311ab926884a1394a095fd95b9d1ca4bb2549aa7c334da76d7dfc49e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.briarproject" name="tor-android" version="0.4.8.9-1">
diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt
index 9909cb82ff1d7a2f62dc33bf26a9ad4f9cd8655d..8f416e850cda507659d571431e745787c9de5486 100644
--- a/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt
+++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt
@@ -14,7 +14,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.briarproject.mailbox.R
import org.briarproject.mailbox.android.ui.MailboxViewModel
-import org.briarproject.mailbox.core.settings.SettingsManager
import org.briarproject.mailbox.core.tor.NetworkManager
import org.briarproject.mailbox.core.tor.TorConstants.BRIDGE_AUTO
import org.briarproject.mailbox.core.tor.TorConstants.BRIDGE_AUTO_DEFAULT
@@ -49,9 +48,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
private lateinit var brideTypePrefs: List<SwitchPreferenceCompat>
private lateinit var bridgeTypesCategory: PreferenceCategory
- @Inject
- lateinit var settingsManager: SettingsManager
-
@Inject
lateinit var torSettingsStore: TorSettingsStore
@@ -122,12 +118,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
private fun onAutoChanged(auto: Boolean) {
autoPref.isChecked = auto
val country = locationUtils.currentCountry
- val doBridgesWork = circumventionProvider.doBridgesWork(country)
+ val useBridgesByDefault = circumventionProvider.shouldUseBridges(country)
// if automatic mode is on, we show what Tor is using, otherwise we show what user has set
if (auto) {
setIsPersistent(false)
- usePref.isChecked = doBridgesWork
- onUseBridgesChanged(doBridgesWork)
+ usePref.isChecked = useBridgesByDefault
+ onUseBridgesChanged(useBridgesByDefault)
val autoTypes = if (networkManager.networkStatus.isIpv6Only) {
listOf(MEEK, SNOWFLAKE)
} else {
@@ -141,7 +137,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
} else {
setIsPersistent(true)
val useBridges =
- torSettingsStore.getBooleanAndStoreDefault(usePref, BRIDGE_USE, doBridgesWork)
+ torSettingsStore.getBooleanAndStoreDefault(usePref, BRIDGE_USE, useBridgesByDefault)
onUseBridgesChanged(useBridges)
val customTypes = torPlugin.customBridgeTypes
torSettingsStore.getBooleanAndStoreDefault(
diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java
index 6da3f8e7e9b90336a5aaccd00aa25b1614a90e27..26f4903ff73644f8ab79b898fc9bab73812b3cd6 100644
--- a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java
+++ b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java
@@ -54,7 +54,7 @@ public class AndroidTorPlugin extends AbstractTorPlugin {
File torDirectory,
IntSupplier portSupplier) {
super(ioExecutor, settingsManager, networkManager, locationUtils,
- circumventionProvider, portSupplier, SDK_INT >= 25,
+ circumventionProvider, portSupplier,
new AndroidTorWrapper(app, wakeLockManager, ioExecutor,
eventExecutor, architecture, torDirectory, SOCKS_PORT,
CONTROL_PORT));
diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java b/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java
index 3a39b7febbaf05e6b76051fe9ed9dfb83a59aa18..cd3c436a7694eae44284966490263319e778c097 100644
--- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java
+++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java
@@ -95,7 +95,6 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener {
private final LocationUtils locationUtils;
private final CircumventionProvider circumventionProvider;
private final IntSupplier portSupplier;
- private final boolean canVerifyLetsEncryptCerts;
private final TorWrapper tor;
private final AtomicBoolean used = new AtomicBoolean(false);
@@ -109,7 +108,6 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener {
LocationUtils locationUtils,
CircumventionProvider circumventionProvider,
IntSupplier portSupplier,
- boolean canVerifyLetsEncryptCerts,
TorWrapper tor) {
this.ioExecutor = ioExecutor;
this.settingsManager = settingsManager;
@@ -117,7 +115,6 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener {
this.locationUtils = locationUtils;
this.circumventionProvider = circumventionProvider;
this.portSupplier = portSupplier;
- this.canVerifyLetsEncryptCerts = canVerifyLetsEncryptCerts;
this.tor = tor;
// Don't execute more than one connection status check at a time
connectionStatusExecutor =
@@ -232,7 +229,7 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener {
List<String> bridges = new ArrayList<>();
for (BridgeType bridgeType : bridgeTypes) {
bridges.addAll(circumventionProvider.getBridges(bridgeType,
- countryCode, canVerifyLetsEncryptCerts));
+ countryCode));
}
tor.enableBridges(bridges);
}
@@ -357,7 +354,7 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener {
private List<BridgeType> getBridgeTypes(String country, boolean ipv6Only) {
List<BridgeType> bridgeTypes = emptyList();
boolean bridgesNeeded =
- circumventionProvider.doBridgesWork(country);
+ circumventionProvider.shouldUseBridges(country);
boolean bridgeAuto =
settings.getBoolean(BRIDGE_AUTO, BRIDGE_AUTO_DEFAULT);
if (bridgeAuto) {
diff --git a/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java b/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java
index e3ac9442c417773c6c296454d9c97fd87f4a9398..72b3096102e667af296546bce7d0c08bd628be49 100644
--- a/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java
+++ b/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java
@@ -43,7 +43,7 @@ public class JavaTorPlugin extends AbstractTorPlugin {
File torDirectory,
IntSupplier portSupplier) {
super(ioExecutor, settingsManager, networkManager, locationUtils,
- circumventionProvider, portSupplier, true,
+ circumventionProvider, portSupplier,
new UnixTorWrapper(ioExecutor, eventExecutor, architecture,
torDirectory, SOCKS_PORT, CONTROL_PORT));
}