diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 365d18c8a..4fcb056b7 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -277,7 +277,7 @@ class Account( // Follows Relays val followOutboxes = FollowListOutboxRelays(kind3FollowList, blockedRelayList, cache, scope) - val followPlusAllMine = MergedFollowPlusMineRelayListsState(followOutboxes, nip65RelayList, privateStorageRelayList, localRelayList, scope) + val followPlusAllMine = MergedFollowPlusMineRelayListsState(followOutboxes, nip65RelayList, privateStorageRelayList, trustedRelayList, localRelayList, scope) // keeps a cache of the outbox relays for each author val followsPerRelay = FollowsPerOutboxRelay(kind3FollowList, blockedRelayList, cache, scope).flow diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/serverList/MergedFollowPlusMineRelayListsState.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/serverList/MergedFollowPlusMineRelayListsState.kt index 1fdb93266..ac719c9d1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/serverList/MergedFollowPlusMineRelayListsState.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/serverList/MergedFollowPlusMineRelayListsState.kt @@ -23,6 +23,7 @@ package com.vitorpamplona.amethyst.model.serverList import com.vitorpamplona.amethyst.model.edits.PrivateStorageRelayListState import com.vitorpamplona.amethyst.model.localRelays.LocalRelayListState import com.vitorpamplona.amethyst.model.nip02FollowLists.FollowListOutboxRelays +import com.vitorpamplona.amethyst.model.nip51Lists.TrustedRelayListState import com.vitorpamplona.amethyst.model.nip65RelayList.Nip65RelayListState import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import kotlinx.coroutines.CoroutineScope @@ -39,32 +40,33 @@ class MergedFollowPlusMineRelayListsState( val nip65RelayList: Nip65RelayListState, val privateOutboxRelayList: PrivateStorageRelayListState, val localRelayList: LocalRelayListState, + val trustedRelayList: TrustedRelayListState, val scope: CoroutineScope, ) { - fun mergeLists( - kind3: Set, - outbox: Set, - inbox: Set, - private: Set, - local: Set, - ): Set = kind3 + outbox + inbox + private + local + fun mergeLists(lists: Array>): Set = lists.reduce { acc, set -> acc + set } val flow: StateFlow> = combine( - followsOutboxRelayList.flow, - nip65RelayList.outboxFlow, - nip65RelayList.inboxFlow, - privateOutboxRelayList.flow, - localRelayList.flow, + listOf( + followsOutboxRelayList.flow, + nip65RelayList.outboxFlow, + nip65RelayList.inboxFlow, + privateOutboxRelayList.flow, + localRelayList.flow, + trustedRelayList.flow, + ), ::mergeLists, ).onStart { emit( mergeLists( - followsOutboxRelayList.flow.value, - nip65RelayList.outboxFlow.value, - nip65RelayList.inboxFlow.value, - privateOutboxRelayList.flow.value, - localRelayList.flow.value, + arrayOf( + followsOutboxRelayList.flow.value, + nip65RelayList.outboxFlow.value, + nip65RelayList.inboxFlow.value, + privateOutboxRelayList.flow.value, + localRelayList.flow.value, + trustedRelayList.flow.value, + ), ), ) }.flowOn(Dispatchers.Default) @@ -72,11 +74,14 @@ class MergedFollowPlusMineRelayListsState( scope, SharingStarted.Eagerly, mergeLists( - followsOutboxRelayList.flow.value, - nip65RelayList.outboxFlow.value, - nip65RelayList.inboxFlow.value, - privateOutboxRelayList.flow.value, - localRelayList.flow.value, + arrayOf( + followsOutboxRelayList.flow.value, + nip65RelayList.outboxFlow.value, + nip65RelayList.inboxFlow.value, + privateOutboxRelayList.flow.value, + localRelayList.flow.value, + trustedRelayList.flow.value, + ), ), ) }