From afb5169edec37db32c8551afea7850b24a7e94ac Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 11 Mar 2024 13:10:29 -0400 Subject: [PATCH] Fitlers too many reposts out of the main feed. --- .../ui/dal/HomeNewThreadFeedFilter.kt | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/HomeNewThreadFeedFilter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/HomeNewThreadFeedFilter.kt index ac87c3507..7218a8e72 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/HomeNewThreadFeedFilter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/HomeNewThreadFeedFilter.kt @@ -74,7 +74,6 @@ class HomeNewThreadFeedFilter(val account: Account) : AdditiveFeedFilter() val followingCommunities = account.liveHomeFollowLists.value?.communities ?: emptySet() val oneMinuteInTheFuture = TimeUtils.now() + (1 * 60) // one minute in the future. - val oneHr = 60 * 60 return collection .asSequence() @@ -104,25 +103,18 @@ class HomeNewThreadFeedFilter(val account: Account) : AdditiveFeedFilter() // acceptable (isHiddenList || it.author?.let { !account.isHidden(it.pubkeyHex) } ?: true) && ((it.event?.createdAt() ?: 0) < oneMinuteInTheFuture) && - it.isNewThread() && - ( - (noteEvent !is RepostEvent && noteEvent !is GenericRepostEvent) || // not a repost - ( - it.replyTo?.lastOrNull()?.author?.pubkeyHex !in followingKeySet || - ( - noteEvent.createdAt() > - ( - it.replyTo?.lastOrNull()?.createdAt() - ?: 0 - ) + oneHr - ) - ) // or a repost of by a non-follower's post (likely not seen yet) - ) + it.isNewThread() } .toSet() } override fun sort(collection: Set): List { - return collection.sortedWith(compareBy({ it.createdAt() }, { it.idHex })).reversed() + return collection.distinctBy { + if (it.event is RepostEvent || it.event is GenericRepostEvent) { + it.replyTo?.lastOrNull()?.idHex ?: it.idHex // only the most recent repost per feed. + } else { + it.idHex + } + }.sortedWith(compareBy({ it.createdAt() }, { it.idHex })).reversed() } }