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 {