From 5e5c3934723ccf8827e376a1003c00f2a069af24 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 3 Mar 2023 19:40:26 -0500 Subject: [PATCH] Bringing back the idea of checking for change before updating the screen. The check happens between 500us and 1ms and the screen update generally in 10-100ms --- .../com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt | 4 ++-- .../vitorpamplona/amethyst/ui/screen/LnZapFeedViewModel.kt | 4 +++- .../com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt | 4 +++- 3 files changed, 8 insertions(+), 4 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 e334b6b5e..98de7538d 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 @@ -63,9 +63,9 @@ abstract class FeedViewModel(val localFilter: FeedFilter): ViewModel() { val oldNotesState = feedContent.value if (oldNotesState is FeedState.Loaded) { // Using size as a proxy for has changed. - //if (notes != oldNotesState.feed.value) { + if (notes != oldNotesState.feed.value) { updateFeed(notes) - //} + } } else { updateFeed(notes) } 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 b24c82828..5b1a70da9 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 @@ -38,7 +38,9 @@ open class LnZapFeedViewModel(val dataSource: FeedFilter>): Vie val oldNotesState = feedContent.value if (oldNotesState is LnZapFeedState.Loaded) { // Using size as a proxy for has changed. - updateFeed(notes) + if (notes != oldNotesState.feed.value) { + updateFeed(notes) + } } else { updateFeed(notes) } 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 1f6acfccd..d2ffb23ed 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 @@ -42,7 +42,9 @@ open class UserFeedViewModel(val dataSource: FeedFilter): ViewModel() { val oldNotesState = feedContent.value if (oldNotesState is UserFeedState.Loaded) { // Using size as a proxy for has changed. - updateFeed(notes) + if (notes != oldNotesState.feed.value) { + updateFeed(notes) + } } else { updateFeed(notes) }