mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-09 08:04:45 +00:00
Adds favorite relays to Global Feed
This commit is contained in:
@@ -408,6 +408,7 @@ class Account(
|
||||
followsRelays = defaultGlobalRelays.flow,
|
||||
blockedRelays = blockedRelayList.flow,
|
||||
proxyRelays = proxyRelayList.flow,
|
||||
relayFeeds = relayFeedsList.flow,
|
||||
caches = feedDecryptionCaches,
|
||||
signer = signer,
|
||||
scope = scope,
|
||||
|
||||
+2
-1
@@ -57,6 +57,7 @@ class FeedTopNavFilterState(
|
||||
val followsRelays: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val blockedRelays: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val proxyRelays: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val relayFeeds: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val caches: FeedDecryptionCaches,
|
||||
val signer: NostrSigner,
|
||||
val scope: CoroutineScope,
|
||||
@@ -64,7 +65,7 @@ class FeedTopNavFilterState(
|
||||
fun loadFlowsFor(listName: TopFilter): IFeedFlowsType =
|
||||
when (listName) {
|
||||
TopFilter.Global -> {
|
||||
GlobalFeedFlow(followsRelays, proxyRelays)
|
||||
GlobalFeedFlow(followsRelays, proxyRelays, relayFeeds)
|
||||
}
|
||||
|
||||
TopFilter.AllFollows -> {
|
||||
|
||||
+2
-1
@@ -30,8 +30,9 @@ import kotlinx.coroutines.flow.StateFlow
|
||||
class GlobalFeedFlow(
|
||||
val outboxRelays: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val proxyRelays: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val relayFeeds: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
) : IFeedFlowsType {
|
||||
val default = GlobalTopNavFilter(outboxRelays, proxyRelays)
|
||||
val default = GlobalTopNavFilter(outboxRelays, proxyRelays, relayFeeds)
|
||||
|
||||
override fun flow() = MutableStateFlow(default)
|
||||
|
||||
|
||||
+4
-3
@@ -34,17 +34,18 @@ import kotlinx.coroutines.flow.combine
|
||||
class GlobalTopNavFilter(
|
||||
val outboxRelays: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val proxyRelays: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
val relayFeeds: StateFlow<Set<NormalizedRelayUrl>>,
|
||||
) : IFeedTopNavFilter {
|
||||
override fun matchAuthor(pubkey: HexKey): Boolean = true
|
||||
|
||||
override fun match(noteEvent: Event) = true
|
||||
|
||||
override fun toPerRelayFlow(cache: LocalCache): Flow<GlobalTopNavPerRelayFilterSet> =
|
||||
combine(outboxRelays, proxyRelays) { outboxRelays, proxyRelays ->
|
||||
combine(outboxRelays, proxyRelays, relayFeeds) { outboxRelays, proxyRelays, relayFeeds ->
|
||||
if (proxyRelays.isNotEmpty()) {
|
||||
GlobalTopNavPerRelayFilterSet(proxyRelays.associateWith { GlobalTopNavPerRelayFilter })
|
||||
} else {
|
||||
GlobalTopNavPerRelayFilterSet(outboxRelays.associateWith { GlobalTopNavPerRelayFilter })
|
||||
GlobalTopNavPerRelayFilterSet((relayFeeds + outboxRelays).associateWith { GlobalTopNavPerRelayFilter })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +53,6 @@ class GlobalTopNavFilter(
|
||||
if (proxyRelays.value.isNotEmpty()) {
|
||||
GlobalTopNavPerRelayFilterSet(proxyRelays.value.associateWith { GlobalTopNavPerRelayFilter })
|
||||
} else {
|
||||
GlobalTopNavPerRelayFilterSet(outboxRelays.value.associateWith { GlobalTopNavPerRelayFilter })
|
||||
GlobalTopNavPerRelayFilterSet((relayFeeds.value + outboxRelays.value).associateWith { GlobalTopNavPerRelayFilter })
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user