From 22c96d2489fb26100c6c04fccaf9e4b633c9b9f4 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 13 May 2024 15:40:24 -0400 Subject: [PATCH] Use the default comparator instead of creating a new object every time --- .../ui/dal/ChatroomListNewFeedFilter.kt | 4 ++-- .../amethyst/ui/dal/DefaultFeedOrder.kt | 20 ++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListNewFeedFilter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListNewFeedFilter.kt index 567132745..a6ef95299 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListNewFeedFilter.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/ChatroomListNewFeedFilter.kt @@ -46,12 +46,12 @@ class ChatroomListNewFeedFilter(val account: Account) : AdditiveFeedFilter val privateMessages = newChatrooms.mapNotNull { it -> - it.value.roomMessages.sortedWith(compareBy({ it.createdAt() }, { it.idHex })).lastOrNull { + it.value.roomMessages.sortedWith(DefaultFeedOrder).firstOrNull { it.event != null } } - return privateMessages.sortedWith(compareBy({ it.createdAt() }, { it.idHex })).reversed() + return privateMessages.sortedWith(DefaultFeedOrder) } override fun updateListWith( diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DefaultFeedOrder.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DefaultFeedOrder.kt index 873f671e8..30a15bc5a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DefaultFeedOrder.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/dal/DefaultFeedOrder.kt @@ -21,5 +21,23 @@ package com.vitorpamplona.amethyst.ui.dal import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.quartz.events.Event -val DefaultFeedOrder = compareBy({ it.createdAt() }, { it.idHex }).reversed() +val DefaultFeedOrder: Comparator = + compareBy( + { + val noteEvent = it.event + if (noteEvent == null) { + null + } else { + if (noteEvent is Event) { + noteEvent.createdAt + } else { + null + } + } + }, + { + it.idHex + }, + ).reversed()