From 2aa24f0a0d81f524d04e149229afcfade5bdc132 Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Tue, 14 Dec 2021 16:30:59 +0200 Subject: [PATCH] Fix threads sort order, newest first --- .../matrix/android/sdk/api/session/threads/ThreadDetails.kt | 1 + .../android/sdk/internal/database/mapper/EventMapper.kt | 4 +++- .../home/room/threads/list/viewmodel/ThreadListController.kt | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/threads/ThreadDetails.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/threads/ThreadDetails.kt index ad6e139d01..26e8688d34 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/threads/ThreadDetails.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/threads/ThreadDetails.kt @@ -27,5 +27,6 @@ data class ThreadDetails( val numberOfThreads: Int = 0, val threadSummarySenderInfo: SenderInfo? = null, val threadSummaryLatestTextMessage: String? = null, + val lastMessageTimestamp: Long? = null, var threadNotificationState: ThreadNotificationState = ThreadNotificationState.NO_NEW_MESSAGE ) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/EventMapper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/EventMapper.kt index 53925b1a8f..05070efe1f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/EventMapper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/EventMapper.kt @@ -113,7 +113,9 @@ internal object EventMapper { ) }, threadNotificationState = eventEntity.threadNotificationState, - threadSummaryLatestTextMessage = eventEntity.threadSummaryLatestMessage?.root?.asDomain()?.getDecryptedTextSummary().orEmpty() + threadSummaryLatestTextMessage = eventEntity.threadSummaryLatestMessage?.root?.asDomain()?.getDecryptedTextSummary().orEmpty(), + lastMessageTimestamp = eventEntity.threadSummaryLatestMessage?.root?.originServerTs + ) } } diff --git a/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListController.kt b/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListController.kt index 26970e16b3..3f69701a31 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListController.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/threads/list/viewmodel/ThreadListController.kt @@ -55,7 +55,7 @@ class ThreadListController @Inject constructor( it.timelineEvent } ?.forEach { timelineEvent -> - val date = dateFormatter.format(timelineEvent.root.originServerTs, DateFormatKind.ROOM_LIST) + val date = dateFormatter.format(timelineEvent.root.threadDetails?.lastMessageTimestamp, DateFormatKind.ROOM_LIST) threadList { id(timelineEvent.eventId) avatarRenderer(host.avatarRenderer)