diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUniqueIdEoseManager.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUniqueIdEoseManager.kt index b4ce748ef..8cf1b6df9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUniqueIdEoseManager.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUniqueIdEoseManager.kt @@ -70,6 +70,7 @@ abstract class PerUniqueIdEoseManager( subId: String, ) { orchestrator.dismissSubscription(subId) + userSubscriptionMap.remove(key) } fun findOrCreateSubFor(key: T): Subscription { @@ -94,10 +95,8 @@ abstract class PerUniqueIdEoseManager( updated.add(mainKey) } - userSubscriptionMap.forEach { - if (it.key !in updated) { - endSub(it.key, it.value) - } + userSubscriptionMap.filter { it.key !in updated }.forEach { + endSub(it.key, it.value) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserAndFollowListEoseManager.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserAndFollowListEoseManager.kt index 62e130b8b..0c0da81ec 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserAndFollowListEoseManager.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserAndFollowListEoseManager.kt @@ -68,6 +68,7 @@ abstract class PerUserAndFollowListEoseManager( subId: String, ) { orchestrator.dismissSubscription(subId) + userSubscriptionMap.remove(key) } fun findOrCreateSubFor(key: T): Subscription { @@ -87,15 +88,13 @@ abstract class PerUserAndFollowListEoseManager( uniqueSubscribedAccounts.forEach { val user = user(it) - findOrCreateSubFor(it).relayBasedFilters = updateFilter(it, since(it))?.ifEmpty { null } - + val sub = findOrCreateSubFor(it) + sub.relayBasedFilters = updateFilter(it, since(it))?.ifEmpty { null } updated.add(user) } - userSubscriptionMap.forEach { - if (it.key !in updated) { - endSub(it.key, it.value) - } + userSubscriptionMap.filter { it.key !in updated }.forEach { + endSub(it.key, it.value) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserEoseManager.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserEoseManager.kt index 8f06ae1ee..1854f57d1 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserEoseManager.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/eoseManagers/PerUserEoseManager.kt @@ -67,6 +67,7 @@ abstract class PerUserEoseManager( subId: String, ) { orchestrator.dismissSubscription(subId) + userSubscriptionMap.remove(key) } fun findOrCreateSubFor(key: T): Subscription { @@ -91,10 +92,8 @@ abstract class PerUserEoseManager( updated.add(user) } - userSubscriptionMap.forEach { - if (it.key !in updated) { - endSub(it.key, it.value) - } + userSubscriptionMap.filter { it.key !in updated }.forEach { + endSub(it.key, it.value) } }