From e381e2f05fd9798268e8bb264a63e9c4ca55f2eb Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 14 Feb 2023 12:08:35 -0500 Subject: [PATCH] Adjusting Post Lists to 1000 and simplifying comparisons to know when the list has changed. --- .../com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt | 7 ++++--- .../vitorpamplona/amethyst/ui/screen/LnZapFeedViewModel.kt | 3 ++- .../vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt index 6d5bdc64e..8e997f6c7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt @@ -53,14 +53,14 @@ class NostrChatroomListNewFeedViewModel: FeedViewModel(NostrChatroomListDataSour class NostrHomeFeedViewModel: FeedViewModel(NostrHomeDataSource) { override fun newListFromDataSource(): List { // Filter: no replies - return dataSource.feed().filter { it.isNewThread() }.take(100) + return dataSource.feed().filter { it.isNewThread() }.take(1000) } } class NostrHomeRepliesFeedViewModel: FeedViewModel(NostrHomeDataSource) { override fun newListFromDataSource(): List { // Filter: only replies - return dataSource.feed().filter {! it.isNewThread() }.take(100) + return dataSource.feed().filter {! it.isNewThread() }.take(1000) } } @@ -89,7 +89,8 @@ abstract class FeedViewModel(val dataSource: NostrDataSource): ViewModel() val oldNotesState = feedContent.value if (oldNotesState is FeedState.Loaded) { - if (notes != oldNotesState.feed) { + // Using size as a proxy for has changed. + if (notes.size != oldNotesState.feed.value.size && notes.firstOrNull() != oldNotesState.feed.value.firstOrNull()) { updateFeed(notes) } } else { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedViewModel.kt index 5f465ff74..1e2ca4e2a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/LnZapFeedViewModel.kt @@ -39,7 +39,8 @@ open class LnZapFeedViewModel(val dataSource: NostrDataSource>) val oldNotesState = feedContent.value if (oldNotesState is LnZapFeedState.Loaded) { - if (notes != oldNotesState.feed) { + // Using size as a proxy for has changed. + if (notes.size != oldNotesState.feed.value.size && notes.firstOrNull() != oldNotesState.feed.value.firstOrNull()) { updateFeed(notes) } } else { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt index ec7c31dd2..ef0ecfd03 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt @@ -54,7 +54,8 @@ open class UserFeedViewModel(val dataSource: NostrDataSource): ViewModel() val oldNotesState = feedContent.value if (oldNotesState is UserFeedState.Loaded) { - if (notes != oldNotesState.feed) { + // Using size as a proxy for has changed. + if (notes.size != oldNotesState.feed.value.size && notes.firstOrNull() != oldNotesState.feed.value.firstOrNull()) { updateFeed(notes) } } else {