From 7d69413c805a7017aeb6015bc4634c6436f96ca9 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 5 Jul 2023 11:53:01 -0300 Subject: [PATCH] Fix blog post/comment sorting --- .../org/briarproject/briar/desktop/blog/BlogPostItem.kt | 5 +++-- .../org/briarproject/briar/desktop/blog/BlogPostView.kt | 1 + .../org/briarproject/briar/desktop/blog/FeedViewModel.kt | 8 ++------ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostItem.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostItem.kt index 5366298b12..2c4fb589b7 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostItem.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostItem.kt @@ -28,7 +28,7 @@ import org.briarproject.briar.api.identity.AuthorInfo sealed class BlogPost( open val header: BlogPostHeader, open val text: String?, -) : Comparable<BlogPostItem> { +) : Comparable<BlogPost> { abstract val postHeader: BlogPostHeader val isRead: Boolean get() = header.isRead val id: MessageId get() = header.id @@ -38,7 +38,7 @@ sealed class BlogPost( val authorInfo: AuthorInfo get() = header.authorInfo val isRssFeed: Boolean get() = header.isRssFeed - override operator fun compareTo(other: BlogPostItem): Int { + override fun compareTo(other: BlogPost): Int { return if (this === other) 0 else other.header.timeReceived.compareTo(header.timeReceived) } } @@ -71,6 +71,7 @@ data class BlogCommentItem( init { collectComments(header) + // comments are sorted in reverse order, so newest is at the end _comments.sortBy { it.timeReceived } } diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt index b3e4f86732..d7d3ad73e0 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/BlogPostView.kt @@ -166,6 +166,7 @@ private fun RepeatAuthorView(item: BlogPost, modifier: Modifier = Modifier) { horizontalArrangement = spacedBy(8.dp), verticalAlignment = CenterVertically, ) { + // TODO we may eventually want to move this into its own composable or integrate into ProfileCircle Box( contentAlignment = BottomEnd, modifier = Modifier.size(36.dp), diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt index 5f5172e461..99ff47bd5d 100644 --- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt +++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/blog/FeedViewModel.kt @@ -86,9 +86,7 @@ class FeedViewModel @Inject constructor( private fun loadAllBlogPosts(txn: Transaction) { val posts = blogManager.getBlogIds(txn).flatMap { g -> loadBlogPosts(txn, g) - }.sortedByDescending { blogPost -> - blogPost.header.timeReceived - } + }.sortedDescending() txn.attach { _posts.addAll(posts) _isLoading.value = false @@ -108,9 +106,7 @@ class FeedViewModel @Inject constructor( val item = getItem(txn, header) txn.attach { _posts.add(item) - _posts.sortByDescending { blogPost -> - blogPost.header.timeReceived - } + _posts.sortDescending() _isLoading.value = false } } -- GitLab