diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt index bff3d41f1..c7ef1ec2b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewRelayListViewModel.kt @@ -57,18 +57,25 @@ class NewRelayListViewModel : ViewModel() { _relays.update { var relayFile = account.userProfile().latestContactList?.relays() - // Ugly, but forces nostr.band as the only search-supporting relay today. - // TODO: Remove when search becomes more available. - if (relayFile?.none { it.key.removeSuffix("/") in Constants.forcedRelaysForSearchSet } == true) { - relayFile = relayFile + Constants.forcedRelayForSearch.map { - Pair( - it.url, - ContactListEvent.ReadWrite(it.read, it.write) - ) - } - } - if (relayFile != null) { + // Ugly, but forces nostr.band as the only search-supporting relay today. + // TODO: Remove when search becomes more available. + + val needsSearchRelay = relayFile.none { + it.key.removeSuffix("/") in Constants.forcedRelaysForSearchSet + } && relayFile.none { + account.localRelays.filter { localRelay -> localRelay.url == it.key }.firstOrNull()?.feedTypes?.contains(FeedType.SEARCH) ?: false + } + + if (needsSearchRelay) { + relayFile = relayFile + Constants.forcedRelayForSearch.map { + Pair( + it.url, + ContactListEvent.ReadWrite(it.read, it.write) + ) + } + } + relayFile.map { val liveRelay = RelayPool.getRelay(it.key) val localInfoFeedTypes = account.localRelays.filter { localRelay -> localRelay.url == it.key }.firstOrNull()?.feedTypes