From 61f87d8753b891376e8d9414606d2d3a5fc0d3b2 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Mon, 14 Apr 2025 09:08:53 -0300 Subject: [PATCH] Update dependencies --- .../com/greenart7c3/nostrsigner/NostrSigner.kt | 7 +++++-- .../nostrsigner/okhttp/OkHttpWebSocket.kt | 17 +++++++++++++---- .../nostrsigner/ui/actions/EditRelaysDialog.kt | 6 +++++- gradle/libs.versions.toml | 10 +++++----- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt b/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt index 238ae5d3..8be131b2 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt @@ -46,7 +46,10 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking class NostrSigner : Application() { - val client: NostrClient = NostrClient(OkHttpWebSocket.BuilderFactory()) + val factory = OkHttpWebSocket.BuilderFactory { _, useProxy -> + HttpClientManager.getHttpClient(useProxy) + } + val client: NostrClient = NostrClient(factory) val applicationIOScope = CoroutineScope(Dispatchers.IO + SupervisorJob()) private var databases = ConcurrentHashMap() lateinit var settings: AmberSettings @@ -287,7 +290,7 @@ class NostrSigner : Application() { read = it.read, write = it.write, activeTypes = it.feedTypes, - socketBuilderFactory = OkHttpWebSocket.BuilderFactory(), + socketBuilderFactory = factory, forceProxy = account.useProxy, subs = MutableSubscriptionManager(), ) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/okhttp/OkHttpWebSocket.kt b/app/src/main/java/com/greenart7c3/nostrsigner/okhttp/OkHttpWebSocket.kt index 592f9f29..c8ddd182 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/okhttp/OkHttpWebSocket.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/okhttp/OkHttpWebSocket.kt @@ -24,12 +24,14 @@ import com.vitorpamplona.quartz.nip01Core.relay.sockets.WebSocket import com.vitorpamplona.quartz.nip01Core.relay.sockets.WebSocketListener import com.vitorpamplona.quartz.nip01Core.relay.sockets.WebsocketBuilder import com.vitorpamplona.quartz.nip01Core.relay.sockets.WebsocketBuilderFactory +import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response class OkHttpWebSocket( val url: String, val forceProxy: Boolean, + val httpClient: (url: String, forceProxy: Boolean) -> OkHttpClient, val out: WebSocketListener, ) : WebSocket { private val listener = OkHttpWebsocketListener() @@ -38,7 +40,7 @@ class OkHttpWebSocket( fun buildRequest() = Request.Builder().url(url.trim()).build() override fun connect() { - socket = HttpClientManager.getHttpClient(forceProxy).newWebSocket(buildRequest(), listener) + socket = httpClient(url, forceProxy).newWebSocket(buildRequest(), listener) } inner class OkHttpWebsocketListener : okhttp3.WebSocketListener() { @@ -76,15 +78,22 @@ class OkHttpWebSocket( class Builder( val forceProxy: Boolean, + val httpClient: (String, Boolean) -> OkHttpClient, ) : WebsocketBuilder { + // Called when connecting. override fun build( url: String, out: WebSocketListener, - ) = OkHttpWebSocket(url, forceProxy, out) + ) = OkHttpWebSocket(url, forceProxy, httpClient, out) } - class BuilderFactory : WebsocketBuilderFactory { - override fun build(forceProxy: Boolean) = Builder(forceProxy) + class BuilderFactory( + val httpClient: (String, Boolean) -> OkHttpClient, + ) : WebsocketBuilderFactory { + override fun build( + url: String, + forceProxy: Boolean, + ) = Builder(forceProxy, httpClient) } override fun cancel() { diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/EditRelaysDialog.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/EditRelaysDialog.kt index 554c909f..7cce88d9 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/EditRelaysDialog.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/EditRelaysDialog.kt @@ -48,6 +48,7 @@ import com.greenart7c3.nostrsigner.R import com.greenart7c3.nostrsigner.RelayListener2 import com.greenart7c3.nostrsigner.models.Account import com.greenart7c3.nostrsigner.models.TimeUtils.formatLongToCustomDateTimeWithSeconds +import com.greenart7c3.nostrsigner.okhttp.HttpClientManager import com.greenart7c3.nostrsigner.okhttp.OkHttpWebSocket import com.greenart7c3.nostrsigner.relays.AmberListenerSingleton import com.greenart7c3.nostrsigner.service.Nip11Retriever @@ -337,10 +338,13 @@ suspend fun onAddRelay( ) val isPrivateIp = NostrSigner.instance.isPrivateIp(addedWSS) + val factory = OkHttpWebSocket.BuilderFactory { _, useProxy -> + HttpClientManager.getHttpClient(useProxy) + } event?.let { signedEvent -> AmberListenerSingleton.setListener(context, accountStateViewModel) - val socket = OkHttpWebSocket.BuilderFactory() + val socket = factory val client = NostrClient( socket, ) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c529250d..5410936f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,20 +4,20 @@ appcompat = "1.7.0" biometricKtx = "1.2.0-alpha05" converterGson = "2.11.0" core = "3.5.3" -coreKtx = "1.15.0" +coreKtx = "1.16.0" coreSplashscreen = "1.0.1" espressoCore = "3.6.1" junit = "4.13.2" junitVersion = "1.2.1" lifecycle_version = "2.8.7" -material3 = "1.3.1" +material3 = "1.3.2" mockk = "1.13.17" nav_version = "2.8.9" -quartz = "29d046a094" +quartz = "e007a02d84" compose_ui = "1.7.8" richtextUi = "077a2cde64" -roomKtx = "2.6.1" -securityCryptoKtx = "1.1.0-alpha06" +roomKtx = "2.7.0" +securityCryptoKtx = "1.1.0-alpha07" zxingAndroidEmbedded = "4.3.0" okhttp = "5.0.0-alpha.14" kotlin = "2.1.20"