From c1d2114b60d2f82e0978f951634384e47b700ee6 Mon Sep 17 00:00:00 2001 From: Florian Renaud Date: Fri, 18 Aug 2023 09:46:44 +0200 Subject: [PATCH] Update option progress when selected --- .../factories/event/TimelineItemContentPollFactory.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemContentPollFactory.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemContentPollFactory.kt index b7a39974d4..7b4f536932 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemContentPollFactory.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/timeline/factories/event/TimelineItemContentPollFactory.kt @@ -40,10 +40,16 @@ class TimelineItemContentPollFactory @Inject constructor( val userVotes = content.votes.filter { matrixClient.sessionId in it.value }.keys val answerItems = content.answers.map { answer -> val votesCount = content.votes[answer.id]?.size ?: 0 - val progress = if (content.kind.isDisclosed && pollVotesCount > 0) votesCount.toFloat() / pollVotesCount.toFloat() else 0f + val isSelected = answer.id in userVotes + val progress = when { + pollVotesCount == 0 -> 0f + content.kind.isDisclosed -> votesCount.toFloat() / pollVotesCount.toFloat() + isSelected -> 1f + else -> 0f + } PollAnswerItem( answer = answer, - isSelected = answer.id in userVotes, + isSelected = isSelected, isDisclosed = content.kind.isDisclosed, votesCount = votesCount, progress = progress,