From 238e577b93b45ba91fec2f9d80680d7fe347be67 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 1 Mar 2024 10:39:49 -0500 Subject: [PATCH] avoids changing and reading the state at the same time --- .../amethyst/ui/note/PollNoteViewModel.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNoteViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNoteViewModel.kt index bfbfa71c8a..0c03ebd7af 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNoteViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PollNoteViewModel.kt @@ -111,14 +111,17 @@ class PollNoteViewModel : ViewModel() { } tallies.forEach { - it.zappedValue.value = zappedPollOptionAmount(it.option) - it.tally.value = - if (totalZapped.compareTo(BigDecimal.ZERO) > 0) { - it.zappedValue.value.divide(totalZapped, 2, RoundingMode.HALF_UP) + val zappedValue = zappedPollOptionAmount(it.option) + val tallyValue = + if (totalZapped > BigDecimal.ZERO) { + zappedValue.divide(totalZapped, 2, RoundingMode.HALF_UP) } else { BigDecimal.ZERO } - it.consensusThreadhold.value = consensusThreshold != null && it.tally.value >= consensusThreshold!! + + it.zappedValue.value = zappedValue + it.tally.value = tallyValue + it.consensusThreadhold.value = consensusThreshold != null && tallyValue >= consensusThreshold!! it.zappedByLoggedIn.value = account?.userProfile()?.let { it1 -> cachedIsPollOptionZappedBy(it.option, it1) } ?: false } }