From 1d9b2cffa23ae0549ca0f1bdcb78f0582373ba29 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 22 Jul 2025 15:05:17 -0400 Subject: [PATCH] Filtering Addressable notes from Notification's note stack --- .../notifications/dal/NotificationFeedFilter.kt | 10 +++++++--- .../relay/client/single/basic/BasicRelayClient.kt | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/dal/NotificationFeedFilter.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/dal/NotificationFeedFilter.kt index 07efff1bb..bb85db454 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/dal/NotificationFeedFilter.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/notifications/dal/NotificationFeedFilter.kt @@ -29,6 +29,7 @@ import com.vitorpamplona.amethyst.ui.dal.DefaultFeedOrder import com.vitorpamplona.amethyst.ui.dal.FilterByListParams import com.vitorpamplona.quartz.experimental.forks.forkFromVersion import com.vitorpamplona.quartz.experimental.forks.isForkFromAddressWithPubkey +import com.vitorpamplona.quartz.nip01Core.core.AddressableEvent import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.tags.people.isTaggedUser import com.vitorpamplona.quartz.nip10Notes.BaseThreadedEvent @@ -74,8 +75,11 @@ class NotificationFeedFilter( val notifications = LocalCache.notes.filterIntoSet { _, note -> - acceptableEvent(note, filterParams) - } + note.event !is AddressableEvent && acceptableEvent(note, filterParams) + } + + LocalCache.addressables.filterIntoSet { _, note -> + acceptableEvent(note, filterParams) + } return sort(notifications) } @@ -126,7 +130,7 @@ class NotificationFeedFilter( it.event !is GiftWrapEvent && it.event !is PrivateTagArrayEvent && (it.event is LnZapEvent || notifAuthor != loggedInUserHex) && - (filterParams.isGlobal(it.relays) || notifAuthor == null || filterParams.isAuthorInFollows(notifAuthor) == true) && + (filterParams.isGlobal(it.relays) || notifAuthor == null || filterParams.isAuthorInFollows(notifAuthor)) && it.event?.isTaggedUser(loggedInUserHex) ?: false && (filterParams.isHiddenList || notifAuthor == null || !account.isHidden(notifAuthor)) && tagsAnEventByUser(it, loggedInUserHex) diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/relay/client/single/basic/BasicRelayClient.kt b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/relay/client/single/basic/BasicRelayClient.kt index 761ef648f..2a5803871 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/relay/client/single/basic/BasicRelayClient.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/nip01Core/relay/client/single/basic/BasicRelayClient.kt @@ -310,6 +310,7 @@ open class BasicRelayClient( private fun processClosed(msg: ClosedMessage) { Log.w(logTag, "Relay Closed Subscription ${msg.subscriptionId} ${msg.message}") + stats.newNotice("Subscription closed: ${msg.subscriptionId} ${msg.message}") afterEOSEPerSubscription[msg.subscriptionId] = false listener.onClosed(this@BasicRelayClient, msg.subscriptionId, msg.message) }