From 0f968ca5e5d3d4a929283a1a54527c1c9202d9f8 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 1 Feb 2023 13:17:21 -0300 Subject: [PATCH] Removing channel create and change from Notifications Feed --- .../amethyst/service/NostrNotificationDataSource.kt | 7 ++++++- .../com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt | 2 -- .../vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt | 8 +++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt index 27f5fcd41..b40f53ac3 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt @@ -3,6 +3,9 @@ package com.vitorpamplona.amethyst.service import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.model.User +import com.vitorpamplona.amethyst.service.model.ChannelCreateEvent +import com.vitorpamplona.amethyst.service.model.ChannelMetadataEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent import nostr.postr.JsonFilter object NostrNotificationDataSource: NostrDataSource("NotificationFeed") { @@ -21,7 +24,9 @@ object NostrNotificationDataSource: NostrDataSource("NotificationFeed") { set.filter { it.event != null }.filter { account.isAcceptable(it) } } - return filtered.sortedBy { it.event?.createdAt }.reversed() + return filtered.filter { + it.event !is ChannelCreateEvent && it.event !is ChannelMetadataEvent + }.sortedBy { it.event?.createdAt }.reversed() } override fun updateChannelFilters() { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt index 2e14607b6..911f47377 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt @@ -18,11 +18,9 @@ class NoteCard(val note: Note): Card() { class LikeSetCard(val note: Note, val likeEvents: List): Card() { val createdAt = likeEvents.maxOf { it.event?.createdAt ?: 0 } - override fun createdAt(): Long { return createdAt } - override fun id() = note.idHex + "L" + createdAt } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt index 591643a16..2eeb14032 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt @@ -9,6 +9,8 @@ import com.vitorpamplona.amethyst.model.LocalCache import com.vitorpamplona.amethyst.model.LocalCacheState import com.vitorpamplona.amethyst.model.Note import com.vitorpamplona.amethyst.service.NostrDataSource +import com.vitorpamplona.amethyst.service.model.ChannelCreateEvent +import com.vitorpamplona.amethyst.service.model.ChannelMetadataEvent import com.vitorpamplona.amethyst.service.model.ReactionEvent import com.vitorpamplona.amethyst.service.model.RepostEvent import kotlinx.coroutines.CoroutineScope @@ -56,9 +58,9 @@ class CardFeedViewModel(val dataSource: NostrDataSource): ViewModel() { private fun convertToCard(notes: List): List { val reactionsPerEvent = mutableMapOf>() notes - .filter { it.event is ReactionEvent } + .filter { it.event is ReactionEvent} .forEach { - val reactedPost = it.replyTo?.last() + val reactedPost = it.replyTo?.lastOrNull() { it.event !is ChannelMetadataEvent && it.event !is ChannelCreateEvent } if (reactedPost != null) reactionsPerEvent.getOrPut(reactedPost, { mutableListOf() }).add(it) } @@ -69,7 +71,7 @@ class CardFeedViewModel(val dataSource: NostrDataSource): ViewModel() { notes .filter { it.event is RepostEvent } .forEach { - val boostedPost = it.replyTo?.last() + val boostedPost = it.replyTo?.lastOrNull() { it.event !is ChannelMetadataEvent && it.event !is ChannelCreateEvent } if (boostedPost != null) boostsPerEvent.getOrPut(boostedPost, { mutableListOf() }).add(it) }