diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt index 18865dbb4..0c127556e 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt @@ -108,10 +108,9 @@ class LiveActivitiesChannel(val address: ATag) : Channel(address.toTag()) { @Stable abstract class Channel(val idHex: String) { var creator: User? = null - var updatedMetadataAt: Long = 0 - val notes = LargeCache() + var lastNoteCreatedAt: Long = 0 open fun id() = Hex.decode(idHex) @@ -147,6 +146,10 @@ abstract class Channel(val idHex: String) { fun addNote(note: Note) { notes.put(note.idHex, note) + + if ((note.createdAt() ?: 0) > lastNoteCreatedAt) { + lastNoteCreatedAt = note.createdAt() ?: 0 + } } fun removeNote(note: Note) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverChatFeedFilter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverChatFeedFilter.kt index 2a58fb1f5..82eee98a3 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverChatFeedFilter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DiscoverChatFeedFilter.kt @@ -85,17 +85,15 @@ open class DiscoverChatFeedFilter(val account: Account) : AdditiveFeedFilter): 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 lastNote = + collection.associateWith { note -> + LocalCache.getChannelIfExists(note.idHex)?.lastNoteCreatedAt ?: 0 + } return collection .sortedWith( compareBy( - { participantCounts[it] }, + { lastNote[it] }, { it.createdAt() }, { it.idHex }, ),