diff --git a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/NostrClient.kt b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/NostrClient.kt index 7b1876621..e3b49eeb0 100644 --- a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/NostrClient.kt +++ b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/NostrClient.kt @@ -408,6 +408,8 @@ class NostrClient( fun getSubscriptionFilters(subId: String): List = activeSubscriptions.getSubscriptionFilters(subId) + fun getSubscriptionFiltersOrNull(subId: String): List? = activeSubscriptions.getSubscriptionFiltersOrNull(subId) + fun connectedRelays() = relayPool.connectedRelays() fun relayStatusFlow() = relayPool.statusFlow diff --git a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/SubscriptionManager.kt b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/SubscriptionManager.kt index a132d299f..76e69c957 100644 --- a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/SubscriptionManager.kt +++ b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/SubscriptionManager.kt @@ -39,6 +39,8 @@ class MutableSubscriptionManager : SubscriptionManager { override fun allSubscriptions(): Map> = subscriptions override fun getSubscriptionFilters(subId: String): List = subscriptions[subId] ?: emptyList() + + override fun getSubscriptionFiltersOrNull(subId: String): List? = subscriptions[subId] } interface SubscriptionManager { @@ -47,4 +49,6 @@ interface SubscriptionManager { fun allSubscriptions(): Map> fun getSubscriptionFilters(subId: String): List + + fun getSubscriptionFiltersOrNull(subId: String): List } diff --git a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/datasources/SubscriptionController.kt b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/datasources/SubscriptionController.kt index cec31055a..5fbe52679 100644 --- a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/datasources/SubscriptionController.kt +++ b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/datasources/SubscriptionController.kt @@ -155,7 +155,7 @@ class SubscriptionController( // saves the channels that are currently active val activeSubscriptions = subscriptions.actives() // saves the current content to only update if it changes - val currentFilters = activeSubscriptions.associate { it.id to it.typedFilters } + val currentFilters = activeSubscriptions.associate { it.id to client.getSubscriptionFiltersOrNull(it.id) } // updates all filters updateSubscriptions()