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 d7eed6ac..d59d7765 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 @@ -333,6 +333,9 @@ fun onAddRelay( val client = NostrClient( socket, ) + val clientSub = NostrClient( + socket, + ) AmberListenerSingleton.getListener()?.let { listener -> client.subscribe(listener) } @@ -347,6 +350,17 @@ fun onAddRelay( ), ), ) + clientSub.reconnect( + arrayOf( + RelaySetupInfoToConnect( + addedWSS, + read = true, + write = true, + feedTypes = COMMON_FEED_TYPES, + forceProxy = if (isPrivateIp) false else Amber.instance.settings.useProxy, + ), + ), + ) var filterResult = false val listener2 = BunkerValidationRelayListener( account, @@ -357,10 +371,15 @@ fun onAddRelay( }, ) val relay = client.getRelay(addedWSS) ?: return@secondLaunch + val relaySub = clientSub.getRelay(addedWSS) ?: return@secondLaunch client.subscribe( listener2, ) + clientSub.subscribe( + listener2, + ) relay.connect() + relaySub.connect() delay(3000) relay.sendFilter( UUID.randomUUID().toString().substring(0, 4), @@ -374,6 +393,18 @@ fun onAddRelay( ), ), ) + relaySub.sendFilter( + UUID.randomUUID().toString().substring(0, 4), + filters = listOf( + TypedFilter( + types = COMMON_FEED_TYPES, + filter = SincePerRelayFilter( + kinds = listOf(NostrConnectEvent.KIND), + tags = mapOf("p" to listOf(signedEvent.pubKey)), + ), + ), + ), + ) delay(3000) val result = client.sendAndWaitForResponse( signedEvent = signedEvent, @@ -394,7 +425,9 @@ fun onAddRelay( client.unsubscribe(listener) } client.unsubscribe(listener2) + clientSub.unsubscribe(listener2) client.getRelay(addedWSS)?.disconnect() + clientSub.getRelay(addedWSS)?.disconnect() if (result && filterResult) { relays2.add(