From 4691be9e8b927c64997448406b21605cd41d8260 Mon Sep 17 00:00:00 2001 From: drgnchan Date: Mon, 30 Dec 2024 15:06:24 +0800 Subject: [PATCH 1/2] refactor: use initial items in unread reading-view-model --- .../reader/ui/page/home/reading/ReadingViewModel.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt b/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt index a84362529..309c8b52c 100644 --- a/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt +++ b/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt @@ -47,6 +47,9 @@ class ReadingViewModel @Inject constructor( private val currentFeed: Feed? get() = readingUiState.value.articleWithFeed?.feed + // 添加一个新的属性来保存初始的文章列表状态 + private var initialArticleItems: List = emptyList() + fun initData(articleId: String) { setLoading() viewModelScope.launch(ioDispatcher) { @@ -146,7 +149,12 @@ class ReadingViewModel @Inject constructor( } fun prefetchArticleId(pagingItems: ItemSnapshotList) { - val items = pagingItems.items + // 首次加载时保存初始列表 + if (initialArticleItems.isEmpty()) { + initialArticleItems = pagingItems.items + } + + val items = initialArticleItems val currentId = currentArticle?.id val index = items.indexOfFirst { item -> item is ArticleFlowItem.Article && item.articleWithFeed.article.id == currentId From 2a6d71cfb5b4bc76c113bb21ab1701ca893412b4 Mon Sep 17 00:00:00 2001 From: drgnchan Date: Wed, 1 Jan 2025 20:59:56 +0800 Subject: [PATCH 2/2] chore: remove code comment --- .../java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt b/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt index 309c8b52c..ba326c71e 100644 --- a/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt +++ b/app/src/main/java/me/ash/reader/ui/page/home/reading/ReadingViewModel.kt @@ -47,7 +47,6 @@ class ReadingViewModel @Inject constructor( private val currentFeed: Feed? get() = readingUiState.value.articleWithFeed?.feed - // 添加一个新的属性来保存初始的文章列表状态 private var initialArticleItems: List = emptyList() fun initData(articleId: String) { @@ -149,7 +148,6 @@ class ReadingViewModel @Inject constructor( } fun prefetchArticleId(pagingItems: ItemSnapshotList) { - // 首次加载时保存初始列表 if (initialArticleItems.isEmpty()) { initialArticleItems = pagingItems.items }