From 895e6a8e551f343583491aeb752c7a2fb592d412 Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Wed, 26 Jul 2023 22:37:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B4=B4=E5=AD=90=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E5=90=8E=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tieba/post/ui/page/thread/ThreadViewModel.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/thread/ThreadViewModel.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/thread/ThreadViewModel.kt index d8f7db10..e0128cf9 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/thread/ThreadViewModel.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/thread/ThreadViewModel.kt @@ -309,8 +309,6 @@ class ThreadViewModel @Inject constructor() : ThreadPartialChange.LoadLatestReply.Success( anti = response.data_.anti, posts = response.data_.post_list.map { PostItemData(it.wrapImmutable()) }, - contentRenders = response.data_.post_list.map { it.contentRenders }, - subPostContents = response.data_.post_list.map { it.subPostContents }, page = response.data_.page.current_page, isContinuous = firstLatestPost.floor == curLatestPostFloor + 1, isDesc = isDesc, @@ -805,6 +803,9 @@ sealed interface ThreadPartialChange : PartialChange { val replaceIndex = replacePostIndexes.firstOrNull { it.first == index } if (replaceIndex != null) posts[replaceIndex.second] else oldItem } + val addPosts = posts.filter { + !newPost.any { item -> item.post.get { id } == it.post.get { id } } + } when { hasNewPost && continuous && isDesc -> { oldState.copy( @@ -812,7 +813,7 @@ sealed interface ThreadPartialChange : PartialChange { isError = false, error = null, anti = anti.wrapImmutable(), - data = (posts + newPost).toImmutableList(), + data = (addPosts.reversed() + newPost).toImmutableList(), latestPosts = persistentListOf(), ) } @@ -823,7 +824,7 @@ sealed interface ThreadPartialChange : PartialChange { isError = false, error = null, anti = anti.wrapImmutable(), - data = (newPost + posts).toImmutableList(), + data = (newPost + addPosts).toImmutableList(), latestPosts = persistentListOf(), ) } @@ -872,8 +873,6 @@ sealed interface ThreadPartialChange : PartialChange { data class Success( val anti: Anti, val posts: List, - val contentRenders: List>, - val subPostContents: List>, val page: Int, val isContinuous: Boolean, val isDesc: Boolean,