From a62f2e44d0890eca1d17adba388292e84053e5cb Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 10 May 2023 14:02:38 -0400 Subject: [PATCH] Only calls invalidate if things change --- .../service/NostrSingleEventDataSource.kt | 24 ++++++++++++------- .../service/NostrSingleUserDataSource.kt | 12 ++++++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt index 2e3123c31..e1b663965 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt @@ -152,22 +152,30 @@ object NostrSingleEventDataSource : NostrDataSource("SingleEventFeed") { } fun add(eventId: Note) { - eventsToWatch = eventsToWatch.plus(eventId) - invalidateFilters() + if (!eventsToWatch.contains(eventId)) { + eventsToWatch = eventsToWatch.plus(eventId) + invalidateFilters() + } } fun remove(eventId: Note) { - eventsToWatch = eventsToWatch.minus(eventId) - invalidateFilters() + if (eventsToWatch.contains(eventId)) { + eventsToWatch = eventsToWatch.minus(eventId) + invalidateFilters() + } } fun addAddress(aTag: Note) { - addressesToWatch = addressesToWatch.plus(aTag) - invalidateFilters() + if (!addressesToWatch.contains(aTag)) { + addressesToWatch = addressesToWatch.plus(aTag) + invalidateFilters() + } } fun removeAddress(aTag: Note) { - addressesToWatch = addressesToWatch.minus(aTag) - invalidateFilters() + if (addressesToWatch.contains(aTag)) { + addressesToWatch = addressesToWatch.minus(aTag) + invalidateFilters() + } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt index ba5457280..d6991c53f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt @@ -64,12 +64,16 @@ object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") { } fun add(user: User) { - usersToWatch = usersToWatch.plus(user) - invalidateFilters() + if (!usersToWatch.contains(user)) { + usersToWatch = usersToWatch.plus(user) + invalidateFilters() + } } fun remove(user: User) { - usersToWatch = usersToWatch.minus(user) - invalidateFilters() + if (usersToWatch.contains(user)) { + usersToWatch = usersToWatch.minus(user) + invalidateFilters() + } } }