From e0764da095e08ae5a1712a0a07afda0c1b29e24b Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 8 Sep 2025 15:50:28 -0400 Subject: [PATCH] Creates an interface for the DualHttpClientManager --- .../service/okhttp/DualHttpClientManager.kt | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/DualHttpClientManager.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/DualHttpClientManager.kt index 6f67bb444..afe4e0903 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/DualHttpClientManager.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/okhttp/DualHttpClientManager.kt @@ -30,13 +30,19 @@ import okhttp3.OkHttpClient import java.net.InetSocketAddress import java.net.Proxy +interface IHttpClientManager { + fun getHttpClient(useProxy: Boolean): OkHttpClient + + fun getCurrentProxyPort(useProxy: Boolean): Int? +} + class DualHttpClientManager( userAgent: String, proxyPortProvider: StateFlow, isMobileDataProvider: StateFlow, keyCache: EncryptionKeyCache, scope: CoroutineScope, -) { +) : IHttpClientManager { val factory = OkHttpClientFactory(keyCache) val defaultHttpClient: StateFlow = @@ -60,17 +66,30 @@ class DualHttpClientManager( fun getCurrentProxy(): Proxy? = defaultHttpClient.value.proxy - fun getCurrentProxyPort(useProxy: Boolean): Int? = + override fun getCurrentProxyPort(useProxy: Boolean): Int? = if (useProxy) { (getCurrentProxy()?.address() as? InetSocketAddress)?.port } else { null } - fun getHttpClient(useProxy: Boolean): OkHttpClient = + override fun getHttpClient(useProxy: Boolean): OkHttpClient = if (useProxy) { defaultHttpClient.value } else { defaultHttpClientWithoutProxy.value } } + +object EmptyHttpClientManager : IHttpClientManager { + val rootOkHttpClient = + OkHttpClient + .Builder() + .followRedirects(true) + .followSslRedirects(true) + .build() + + override fun getHttpClient(useProxy: Boolean) = rootOkHttpClient + + override fun getCurrentProxyPort(useProxy: Boolean) = null +}