From e40cd8d9328e80706176bd733175e6e871b79b95 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 19 Mar 2024 10:07:21 -0400 Subject: [PATCH] After clearing memory, only trigger liveData when it actually changed. --- .../com/vitorpamplona/amethyst/model/Note.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt index 77f380b3c..e6ba7ee95 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt @@ -310,6 +310,12 @@ open class Note(val idHex: String) { } fun removeAllChildNotes(): List { + val repliesChanged = replies.isNotEmpty() + val reactionsChanged = reactions.isNotEmpty() + val zapsChanged = zaps.isNotEmpty() || zapPayments.isNotEmpty() + val boostsChanged = boosts.isNotEmpty() + val reportsChanged = reports.isNotEmpty() + val toBeRemoved = replies + reactions.values.flatten() + @@ -330,11 +336,11 @@ open class Note(val idHex: String) { relays = listOf() lastReactionsDownloadTime = emptyMap() - liveSet?.innerReplies?.invalidateData() - liveSet?.innerReactions?.invalidateData() - liveSet?.innerBoosts?.invalidateData() - liveSet?.innerReports?.invalidateData() - liveSet?.innerZaps?.invalidateData() + if (repliesChanged) liveSet?.innerReplies?.invalidateData() + if (reactionsChanged) liveSet?.innerReactions?.invalidateData() + if (boostsChanged) liveSet?.innerBoosts?.invalidateData() + if (reportsChanged) liveSet?.innerReports?.invalidateData() + if (zapsChanged) liveSet?.innerZaps?.invalidateData() return toBeRemoved }