From 64f98e4b924e4fe99dee8d42270822ff3c1e19c0 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 29 May 2023 16:25:35 -0400 Subject: [PATCH] Filters Message Feed DAL to only take PrivateMessages in the Notification Bubble. --- .../ui/dal/ChatroomListKnownFeedFilter.kt | 2 +- .../amethyst/ui/navigation/Routes.kt | 21 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListKnownFeedFilter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListKnownFeedFilter.kt index fe864dfd5..fdabe63b4 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListKnownFeedFilter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListKnownFeedFilter.kt @@ -85,7 +85,7 @@ object ChatroomListKnownFeedFilter : AdditiveFeedFilter() { } } - myNewList + sort(myNewList.toSet()).take(1000) } Log.d("Time", "${this.javaClass.simpleName} Modified Additive Feed in $elapsed with ${feed.size} objects") diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt index 145845a88..08463fb71 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt @@ -13,6 +13,7 @@ import com.vitorpamplona.amethyst.NotificationCache import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.PrivateDmEvent import com.vitorpamplona.amethyst.ui.dal.AdditiveFeedFilter import com.vitorpamplona.amethyst.ui.dal.ChatroomListKnownFeedFilter import com.vitorpamplona.amethyst.ui.dal.HomeNewThreadFeedFilter @@ -127,17 +128,25 @@ open class LatestItem { if (newestItem == null) { newestItemPerAccount = newestItemPerAccount + Pair( account.userProfile().pubkeyHex, - filter.feed().firstOrNull { it.createdAt() != null } + filterMore(filter.feed()).firstOrNull { it.createdAt() != null } ) } else { newestItemPerAccount = newestItemPerAccount + Pair( account.userProfile().pubkeyHex, - filter.sort(filter.applyFilter(newNotes) + newestItem).first() + filter.sort(filterMore(filter.applyFilter(newNotes)) + newestItem).first() ) } return newestItemPerAccount[account.userProfile().pubkeyHex] } + + open fun filterMore(newItems: Set): Set { + return newItems + } + + open fun filterMore(newItems: List): List { + return newItems + } } object HomeLatestItem : LatestItem() { @@ -184,6 +193,14 @@ object MessagesLatestItem : LatestItem() { return (newestItem?.createdAt() ?: 0) > lastTime } + + override fun filterMore(newItems: Set): Set { + return newItems.filter { it.event is PrivateDmEvent }.toSet() + } + + override fun filterMore(newItems: List): List { + return newItems.filter { it.event is PrivateDmEvent } + } } fun getRouteWithArguments(navController: NavHostController): String? {