Skip to content

Commit 02c8c85

Browse files
committed
fix: Ignore global proxy settings if system thinks there's none
Otherwise a :0 proxy would break in Rust SDK.
1 parent 34e88f3 commit 02c8c85

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/proxy/DefaultProxyProvider.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
package io.element.android.libraries.matrix.impl.proxy
99

1010
import android.content.Context
11+
import android.net.ConnectivityManager
1112
import android.provider.Settings
13+
import androidx.core.content.getSystemService
1214
import com.squareup.anvil.annotations.ContributesBinding
1315
import io.element.android.libraries.di.AppScope
1416
import io.element.android.libraries.di.ApplicationContext
@@ -32,6 +34,13 @@ class DefaultProxyProvider @Inject constructor(
3234
private val context: Context
3335
) : ProxyProvider {
3436
override fun provides(): String? {
37+
val defaultProxy = context.getSystemService<ConnectivityManager>()?.defaultProxy
38+
if (defaultProxy == null) {
39+
// Note: can be tested by running:
40+
// adb shell settings put global http_proxy :0
41+
Timber.d("No default proxy")
42+
return null
43+
}
3544
return Settings.Global.getString(context.contentResolver, Settings.Global.HTTP_PROXY)
3645
?.also {
3746
Timber.d("Using global proxy")

0 commit comments

Comments
 (0)