From 281d86b4bf90eedccc83bf939e50eb396e479516 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 27 Jan 2024 11:58:39 -0500 Subject: [PATCH] Small refactoring on the HTTP client --- .../amethyst/LocalPreferences.kt | 4 +- .../vitorpamplona/amethyst/ServiceManager.kt | 6 +-- .../amethyst/service/CashuProcessor.kt | 4 +- .../{HttpClient.kt => HttpClientManager.kt} | 47 ++++++++----------- .../service/Nip05NostrAddressVerifier.kt | 2 +- .../service/Nip11RelayInfoRetriever.kt | 2 +- .../amethyst/service/Nip96MediaServers.kt | 2 +- .../amethyst/service/Nip96Uploader.kt | 6 +-- .../amethyst/service/OnlineCheck.kt | 2 +- .../service/lnurl/LightningAddressResolver.kt | 4 +- .../service/notifications/RegisterAccounts.kt | 4 +- .../service/playback/PlaybackService.kt | 10 ++-- .../service/previews/UrlPreviewUtils.kt | 4 +- .../amethyst/service/relays/Relay.kt | 4 +- .../vitorpamplona/amethyst/ui/MainActivity.kt | 6 +-- .../amethyst/ui/actions/ImageSaver.kt | 4 +- .../ui/screen/AccountStateViewModel.kt | 6 +-- .../ui/screen/loggedIn/AccountViewModel.kt | 4 +- 18 files changed, 57 insertions(+), 64 deletions(-) rename app/src/main/java/com/vitorpamplona/amethyst/service/{HttpClient.kt => HttpClientManager.kt} (76%) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt index 9edba1452..af3201fb3 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/LocalPreferences.kt @@ -40,7 +40,7 @@ import com.vitorpamplona.amethyst.model.ThemeType import com.vitorpamplona.amethyst.model.parseBooleanType import com.vitorpamplona.amethyst.model.parseConnectivityType import com.vitorpamplona.amethyst.model.parseThemeType -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.amethyst.service.Nip96MediaServers import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.quartz.crypto.KeyPair @@ -570,7 +570,7 @@ object LocalPreferences { val hideNIP24WarningDialog = getBoolean(PrefKeys.HIDE_NIP_24_WARNING_DIALOG, false) val useProxy = getBoolean(PrefKeys.USE_PROXY, false) val proxyPort = getInt(PrefKeys.PROXY_PORT, 9050) - val proxy = HttpClient.initProxy(useProxy, "127.0.0.1", proxyPort) + val proxy = HttpClientManager.initProxy(useProxy, "127.0.0.1", proxyPort) val showSensitiveContent = if (contains(PrefKeys.SHOW_SENSITIVE_CONTENT)) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt index 9e3fc4a48..7b332b5df 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt @@ -30,7 +30,7 @@ import coil.decode.SvgDecoder import coil.size.Precision import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.LocalCache -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.amethyst.service.NostrAccountDataSource import com.vitorpamplona.amethyst.service.NostrChannelDataSource import com.vitorpamplona.amethyst.service.NostrChatroomDataSource @@ -83,7 +83,7 @@ class ServiceManager { val myAccount = account // Resets Proxy Use - HttpClient.start(account?.proxy) + HttpClientManager.setDefaultProxy(account?.proxy) LocalCache.antiSpam.active = account?.filterSpamFromStrangers ?: true Coil.setImageLoader { Amethyst.instance @@ -96,7 +96,7 @@ class ServiceManager { } add(SvgDecoder.Factory()) } // .logger(DebugLogger()) - .okHttpClient { HttpClient.getHttpClient() } + .okHttpClient { HttpClientManager.getHttpClient() } .precision(Precision.INEXACT) .respectCacheHeaders(false) .build() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/CashuProcessor.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/CashuProcessor.kt index f19a4cf6a..3762505aa 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/CashuProcessor.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/CashuProcessor.kt @@ -119,7 +119,7 @@ class CashuProcessor { checkNotInMainThread() try { - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() val url = "$mintAddress/checkfees" // Melt cashu tokens at Mint val factory = Event.mapper.nodeFactory @@ -170,7 +170,7 @@ class CashuProcessor { context: Context, ) { try { - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() val url = token.mint + "/melt" // Melt cashu tokens at Mint val factory = Event.mapper.nodeFactory diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/HttpClient.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/HttpClientManager.kt similarity index 76% rename from app/src/main/java/com/vitorpamplona/amethyst/service/HttpClient.kt rename to app/src/main/java/com/vitorpamplona/amethyst/service/HttpClientManager.kt index 64c77e914..c89b40399 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/HttpClient.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/HttpClientManager.kt @@ -32,14 +32,13 @@ import java.net.Proxy import java.time.Duration import kotlin.properties.Delegates -object HttpClient { - val DEFAULT_TIMEOUT_ON_WIFI = Duration.ofSeconds(10L) - val DEFAULT_TIMEOUT_ON_MOBILE = Duration.ofSeconds(30L) +object HttpClientManager { + val DEFAULT_TIMEOUT_ON_WIFI: Duration = Duration.ofSeconds(10L) + val DEFAULT_TIMEOUT_ON_MOBILE: Duration = Duration.ofSeconds(30L) var proxyChangeListeners = ArrayList<() -> Unit>() - var defaultTimeout = DEFAULT_TIMEOUT_ON_WIFI - - var defaultHttpClient: OkHttpClient? = null + private var defaultTimeout = DEFAULT_TIMEOUT_ON_WIFI + private var defaultHttpClient: OkHttpClient? = null // fires off every time value of the property changes private var internalProxy: Proxy? by @@ -49,29 +48,34 @@ object HttpClient { } } - fun start(proxy: Proxy?) { + fun setDefaultProxy(proxy: Proxy?) { if (internalProxy != proxy) { Log.d("HttpClient", "Changing proxy to: ${proxy != null}") - this.defaultHttpClient = null this.internalProxy = proxy - this.defaultHttpClient = getHttpClient() + + // recreates singleton + this.defaultHttpClient = buildHttpClient(internalProxy, defaultTimeout) } } - fun changeTimeouts(timeout: Duration) { + fun setDefaultTimeout(timeout: Duration) { Log.d("HttpClient", "Changing timeout to: $timeout") if (this.defaultTimeout.seconds != timeout.seconds) { - this.defaultHttpClient = null this.defaultTimeout = timeout - this.defaultHttpClient = getHttpClient() + + // recreates singleton + this.defaultHttpClient = buildHttpClient(internalProxy, defaultTimeout) } } - fun getHttpClient(timeout: Duration): OkHttpClient { - val seconds = if (internalProxy != null) timeout.seconds * 2 else timeout.seconds + private fun buildHttpClient( + proxy: Proxy?, + timeout: Duration, + ): OkHttpClient { + val seconds = if (proxy != null) timeout.seconds * 2 else timeout.seconds val duration = Duration.ofSeconds(seconds) return OkHttpClient.Builder() - .proxy(internalProxy) + .proxy(proxy) .readTimeout(duration) .connectTimeout(duration) .writeTimeout(duration) @@ -94,24 +98,13 @@ object HttpClient { } } - fun getHttpClientForRelays(): OkHttpClient { - if (this.defaultHttpClient == null) { - this.defaultHttpClient = getHttpClient(defaultTimeout) - } - return defaultHttpClient!! - } - fun getHttpClient(): OkHttpClient { if (this.defaultHttpClient == null) { - this.defaultHttpClient = getHttpClient(defaultTimeout) + this.defaultHttpClient = buildHttpClient(internalProxy, defaultTimeout) } return defaultHttpClient!! } - fun getProxy(): Proxy? { - return internalProxy - } - fun initProxy( useProxy: Boolean, hostname: String, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip05NostrAddressVerifier.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip05NostrAddressVerifier.kt index fa97b0a93..3498f9518 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip05NostrAddressVerifier.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip05NostrAddressVerifier.kt @@ -64,7 +64,7 @@ class Nip05NostrAddressVerifier() { .url(url) .build() - HttpClient.getHttpClient() + HttpClientManager.getHttpClient() .newCall(request) .enqueue( object : Callback { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip11RelayInfoRetriever.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip11RelayInfoRetriever.kt index 93815bf0e..07fb77fe5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip11RelayInfoRetriever.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip11RelayInfoRetriever.kt @@ -84,7 +84,7 @@ class Nip11Retriever { val request: Request = Request.Builder().header("Accept", "application/nostr+json").url(url).build() - HttpClient.getHttpClient() + HttpClientManager.getHttpClient() .newCall(request) .enqueue( object : Callback { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96MediaServers.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96MediaServers.kt index be1fac14f..d024bb748 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96MediaServers.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96MediaServers.kt @@ -87,7 +87,7 @@ class Nip96Retriever { .url(baseUrl.removeSuffix("/") + "/.well-known/nostr/nip96.json") .build() - HttpClient.getHttpClient().newCall(request).execute().use { response -> + HttpClientManager.getHttpClient().newCall(request).execute().use { response -> checkNotInMainThread() response.use { val body = it.body.string() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96Uploader.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96Uploader.kt index c4552a3a0..e66133d44 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96Uploader.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/Nip96Uploader.kt @@ -128,7 +128,7 @@ class Nip96Uploader(val account: Account?) { val extension = contentType?.let { MimeTypeMap.getSingleton().getExtensionFromMimeType(it) } ?: "" - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() val requestBody: RequestBody val requestBuilder = Request.Builder() @@ -194,7 +194,7 @@ class Nip96Uploader(val account: Account?) { val extension = contentType?.let { MimeTypeMap.getSingleton().getExtensionFromMimeType(it) } ?: "" - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() val requestBuilder = Request.Builder() @@ -227,7 +227,7 @@ class Nip96Uploader(val account: Account?) { server: Nip96Retriever.ServerInfo, onProgress: (percentage: Float) -> Unit, ): PartialEvent { - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() var currentResult = result while (!result.processingUrl.isNullOrBlank() && (currentResult.percentage ?: 100) < 100) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt index 937efa8c4..fae525ad6 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt @@ -59,7 +59,7 @@ object OnlineChecker { .build() val result = - HttpClient.getHttpClient().newCall(request).execute().use { + HttpClientManager.getHttpClient().newCall(request).execute().use { checkNotInMainThread() it.isSuccessful } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt index 1615a0dab..3816cc4eb 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/lnurl/LightningAddressResolver.kt @@ -24,7 +24,7 @@ import android.content.Context import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import com.vitorpamplona.amethyst.BuildConfig import com.vitorpamplona.amethyst.R -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.quartz.encoders.LnInvoiceUtil import com.vitorpamplona.quartz.encoders.Lud06 @@ -35,7 +35,7 @@ import java.math.RoundingMode import java.net.URLEncoder class LightningAddressResolver() { - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() fun assembleUrl(lnaddress: String): String? { val parts = lnaddress.split("@") diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/notifications/RegisterAccounts.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/notifications/RegisterAccounts.kt index 53df87b4d..903b94f95 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/notifications/RegisterAccounts.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/notifications/RegisterAccounts.kt @@ -25,7 +25,7 @@ import com.vitorpamplona.amethyst.AccountInfo import com.vitorpamplona.amethyst.BuildConfig import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.model.Account -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.quartz.events.RelayAuthEvent import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -106,7 +106,7 @@ class RegisterAccounts( .post(body) .build() - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() val isSucess = client.newCall(request).execute().use { it.isSuccessful } } catch (e: java.lang.Exception) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/playback/PlaybackService.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/playback/PlaybackService.kt index 82dfc93b2..ab9f276f9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/playback/PlaybackService.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/playback/PlaybackService.kt @@ -31,7 +31,7 @@ import androidx.media3.exoplayer.source.ProgressiveMediaSource import androidx.media3.session.MediaSession import androidx.media3.session.MediaSessionService import com.vitorpamplona.amethyst.Amethyst -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager @UnstableApi // Extend MediaSessionService class PlaybackService : MediaSessionService() { @@ -42,12 +42,12 @@ class PlaybackService : MediaSessionService() { private var managerLocal: MultiPlayerPlaybackManager? = null fun newHslDataSource(): MediaSource.Factory { - return HlsMediaSource.Factory(OkHttpDataSource.Factory(HttpClient.getHttpClient())) + return HlsMediaSource.Factory(OkHttpDataSource.Factory(HttpClientManager.getHttpClient())) } fun newProgressiveDataSource(): MediaSource.Factory { return ProgressiveMediaSource.Factory( - (applicationContext as Amethyst).videoCache.get(HttpClient.getHttpClient()), + (applicationContext as Amethyst).videoCache.get(HttpClientManager.getHttpClient()), ) } @@ -90,7 +90,7 @@ class PlaybackService : MediaSessionService() { Log.d("Lifetime Event", "PlaybackService.onCreate") // Stop all videos and recreates all managers when the proxy changes. - HttpClient.proxyChangeListeners.add(this@PlaybackService::onProxyUpdated) + HttpClientManager.proxyChangeListeners.add(this@PlaybackService::onProxyUpdated) } private fun onProxyUpdated() { @@ -114,7 +114,7 @@ class PlaybackService : MediaSessionService() { override fun onDestroy() { Log.d("Lifetime Event", "PlaybackService.onDestroy") - HttpClient.proxyChangeListeners.remove(this@PlaybackService::onProxyUpdated) + HttpClientManager.proxyChangeListeners.remove(this@PlaybackService::onProxyUpdated) managerHls?.releaseAppPlayers() managerLocal?.releaseAppPlayers() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/previews/UrlPreviewUtils.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/previews/UrlPreviewUtils.kt index ae521cfee..f028f5804 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/previews/UrlPreviewUtils.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/previews/UrlPreviewUtils.kt @@ -20,7 +20,7 @@ */ package com.vitorpamplona.amethyst.service.previews -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import okhttp3.MediaType @@ -90,7 +90,7 @@ suspend fun getDocument( ): UrlInfoItem = withContext(Dispatchers.IO) { val request: Request = Request.Builder().url(url).get().build() - HttpClient.getHttpClient().newCall(request).execute().use { + HttpClientManager.getHttpClient().newCall(request).execute().use { if (it.isSuccessful) { val mimeType = it.headers.get("Content-Type")?.toMediaType() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt index 08617f8fb..e8a2b632e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt @@ -23,7 +23,7 @@ package com.vitorpamplona.amethyst.service.relays import android.util.Log import com.vitorpamplona.amethyst.BuildConfig import com.vitorpamplona.amethyst.model.RelayBriefInfoCache -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.quartz.encoders.HexKey import com.vitorpamplona.quartz.events.Event @@ -62,7 +62,7 @@ class Relay( const val RECONNECTING_IN_SECONDS = 60 * 3 } - private val httpClient = HttpClient.getHttpClientForRelays() + private val httpClient = HttpClientManager.getHttpClient() private var listeners = setOf() private var socket: WebSocket? = null diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt index 21402b7a6..0303adc68 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt @@ -45,7 +45,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import com.google.accompanist.adaptive.calculateDisplayFeatures import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.ServiceManager -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.amethyst.service.lang.LanguageTranslatorService import com.vitorpamplona.amethyst.service.notifications.PushNotificationUtils import com.vitorpamplona.amethyst.ui.components.DEFAULT_MUTED_SETTING @@ -236,9 +236,9 @@ class MainActivity : AppCompatActivity() { if (changedNetwork) { if (isOnMobileData) { - HttpClient.changeTimeouts(HttpClient.DEFAULT_TIMEOUT_ON_MOBILE) + HttpClientManager.setDefaultTimeout(HttpClientManager.DEFAULT_TIMEOUT_ON_MOBILE) } else { - HttpClient.changeTimeouts(HttpClient.DEFAULT_TIMEOUT_ON_WIFI) + HttpClientManager.setDefaultTimeout(HttpClientManager.DEFAULT_TIMEOUT_ON_WIFI) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/ImageSaver.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/ImageSaver.kt index d9e47197f..ad83dc860 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/ImageSaver.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/ImageSaver.kt @@ -30,7 +30,7 @@ import android.provider.MediaStore import android.webkit.MimeTypeMap import androidx.annotation.RequiresApi import com.vitorpamplona.amethyst.BuildConfig -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import okhttp3.Call import okhttp3.Callback import okhttp3.Request @@ -55,7 +55,7 @@ object ImageSaver { onSuccess: () -> Any?, onError: (Throwable) -> Any?, ) { - val client = HttpClient.getHttpClient() + val client = HttpClientManager.getHttpClient() val request = Request.Builder() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt index fae3317c5..3d2a3caca 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt @@ -28,7 +28,7 @@ import com.vitorpamplona.amethyst.AccountInfo import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.ServiceManager import com.vitorpamplona.amethyst.model.Account -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.amethyst.service.relays.Client import com.vitorpamplona.quartz.crypto.KeyPair import com.vitorpamplona.quartz.encoders.Hex @@ -85,7 +85,7 @@ class AccountStateViewModel() : ViewModel() { ) = withContext(Dispatchers.IO) { val parsed = Nip19.uriToRoute(key) val pubKeyParsed = parsed?.hex?.hexToByteArray() - val proxy = HttpClient.initProxy(useProxy, "127.0.0.1", proxyPort) + val proxy = HttpClientManager.initProxy(useProxy, "127.0.0.1", proxyPort) if (loginWithExternalSigner && pubKeyParsed == null) { throw Exception("Invalid key while trying to login with external signer") @@ -216,7 +216,7 @@ class AccountStateViewModel() : ViewModel() { name: String? = null, ) { viewModelScope.launch(Dispatchers.IO) { - val proxy = HttpClient.initProxy(useProxy, "127.0.0.1", proxyPort) + val proxy = HttpClientManager.initProxy(useProxy, "127.0.0.1", proxyPort) val keyPair = KeyPair() val account = Account( diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index dc7dd7ed1..20561019b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -49,7 +49,7 @@ import com.vitorpamplona.amethyst.model.User import com.vitorpamplona.amethyst.model.UserState import com.vitorpamplona.amethyst.service.CashuProcessor import com.vitorpamplona.amethyst.service.CashuToken -import com.vitorpamplona.amethyst.service.HttpClient +import com.vitorpamplona.amethyst.service.HttpClientManager import com.vitorpamplona.amethyst.service.Nip05NostrAddressVerifier import com.vitorpamplona.amethyst.service.Nip11CachedRetriever import com.vitorpamplona.amethyst.service.Nip11Retriever @@ -1042,7 +1042,7 @@ class AccountViewModel(val account: Account, val settings: SettingsState) : View ) { viewModelScope.launch(Dispatchers.IO) { account.proxyPort = portNumber.value.toInt() - account.proxy = HttpClient.initProxy(checked, "127.0.0.1", account.proxyPort) + account.proxy = HttpClientManager.initProxy(checked, "127.0.0.1", account.proxyPort) account.saveable.invalidateData() serviceManager?.forceRestart() }