From 5a1c9f5a4aa31b5319b126f720a45e685ccd13b9 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sat, 23 Mar 2024 17:18:27 -0400 Subject: [PATCH] Ranks communities by the last post in each community in the discovery screen --- .../ui/dal/DiscoverCommunityFeedFilter.kt | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverCommunityFeedFilter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverCommunityFeedFilter.kt index 163905fad..1e321a7a0 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverCommunityFeedFilter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverCommunityFeedFilter.kt @@ -23,7 +23,6 @@ package com.vitorpamplona.amethyst.ui.dal import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.model.LocalCache import com.vitorpamplona.amethyst.model.Note -import com.vitorpamplona.amethyst.model.ParticipantListBuilder import com.vitorpamplona.quartz.encoders.ATag import com.vitorpamplona.quartz.events.CommunityDefinitionEvent import com.vitorpamplona.quartz.events.CommunityPostApprovalEvent @@ -112,21 +111,15 @@ open class DiscoverCommunityFeedFilter(val account: Account) : AdditiveFeedFilte ) = aTag != null && aTag.kind == CommunityDefinitionEvent.KIND && params.match(aTag) override fun sort(collection: Set): List { - val followingKeySet = - account.liveDiscoveryFollowLists.value?.users ?: account.liveKind3Follows.value.users - - val counter = ParticipantListBuilder() - val participantCounts = - collection.associate { it to counter.countFollowsThatParticipateOn(it, followingKeySet) } - - val allParticipants = - collection.associate { it to counter.countFollowsThatParticipateOn(it, null) } + val lastNote = + collection.associateWith { note -> + note.boosts.maxOfOrNull { it.createdAt() ?: 0 } ?: 0 + } return collection .sortedWith( compareBy( - { participantCounts[it] }, - { allParticipants[it] }, + { lastNote[it] }, { it.createdAt() }, { it.idHex }, ),