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 5366298b12e53abb2867c00ce601b8049c2a388d..2c4fb589b739755dc0f4d00d02b06616e7c53932 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 b3e4f867325eba2dc618cc2e08658a2bcb9335e6..d7d3ad73e0fc7c1699894a6111a02c9d1893aa11 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 5f5172e46120f3fbe0cdee82e91f9af63b5e5fc6..99ff47bd5d0592f524ab8cb9ea10a535870bb22f 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 } }