make own votes bold in result screen

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2022-06-24 12:02:27 +02:00 committed by Andy Scherzinger (Rebase PR Action)
parent a95c0d997b
commit 167aa43ca0
3 changed files with 30 additions and 7 deletions

View File

@ -2,7 +2,8 @@ package com.nextcloud.talk.polls.adapters
class PollResultItem( class PollResultItem(
val pollOption: String, val pollOption: String,
val pollPercent: Int val pollPercent: Int,
val selfVoted: Boolean
// val voters.... // val voters....
) )

View File

@ -1,20 +1,29 @@
package com.nextcloud.talk.polls.adapters package com.nextcloud.talk.polls.adapters
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.graphics.Typeface
import android.view.View import android.view.View
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.nextcloud.talk.databinding.PollResultItemBinding import com.nextcloud.talk.databinding.PollResultItemBinding
class PollResultViewHolder( class PollResultViewHolder(
private val binding: PollResultItemBinding, private val binding: PollResultItemBinding,
private val showDetails: Boolean private val showDetails: Boolean,
) : RecyclerView.ViewHolder(binding.root) { ) : RecyclerView.ViewHolder(binding.root) {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
fun bind(pollResultItem: PollResultItem, clickListener: PollResultItemClickListener) { fun bind(pollResultItem: PollResultItem, clickListener: PollResultItemClickListener) {
binding.root.setOnClickListener { clickListener.onClick(pollResultItem) } binding.root.setOnClickListener { clickListener.onClick(pollResultItem) }
binding.pollOptionText.text = pollResultItem.pollOption binding.pollOptionText.text = pollResultItem.pollOption
binding.pollOptionPercentText.text = pollResultItem.pollPercent.toString() + "%" binding.pollOptionPercentText.text = pollResultItem.pollPercent.toString() + "%"
if (pollResultItem.selfVoted) {
binding.pollOptionText.setTypeface(null, Typeface.BOLD)
binding.pollOptionPercentText.setTypeface(null, Typeface.BOLD)
}
binding.pollOptionBar.progress = pollResultItem.pollPercent binding.pollOptionBar.progress = pollResultItem.pollPercent
if (showDetails) { if (showDetails) {

View File

@ -86,8 +86,8 @@ class PollResultsFragment(
} }
} }
private fun initAdapter(showDetails: Boolean) { private fun initAdapter(showParticipants: Boolean) {
adapter = PollResultsAdapter(this, showDetails) adapter = PollResultsAdapter(this, showParticipants)
_binding?.pollResultsList?.adapter = adapter _binding?.pollResultsList?.adapter = adapter
_binding?.pollResultsList?.layoutManager = LinearLayoutManager(context) _binding?.pollResultsList?.layoutManager = LinearLayoutManager(context)
} }
@ -101,7 +101,12 @@ class PollResultsFragment(
val votersForThisOption = poll.details.filter { it.optionId == index }.size val votersForThisOption = poll.details.filter { it.optionId == index }.size
val optionsPercent = oneVoteInPercent * votersForThisOption val optionsPercent = oneVoteInPercent * votersForThisOption
val pollResultItem = PollResultItem(option, optionsPercent) // TODO add participants to PollResultItem val pollResultItem = PollResultItem(
option,
optionsPercent,
isOptionSelfVoted(poll, index)
)
// TODO add participants to PollResultItem
adapter?.list?.add(pollResultItem) adapter?.list?.add(pollResultItem)
} }
} else if (poll.votes != null) { } else if (poll.votes != null) {
@ -115,7 +120,11 @@ class PollResultsFragment(
} }
val optionsPercent = oneVoteInPercent * votersForThisOption val optionsPercent = oneVoteInPercent * votersForThisOption
val pollResultItem = PollResultItem(option, optionsPercent) val pollResultItem = PollResultItem(
option,
optionsPercent,
isOptionSelfVoted(poll, index)
)
adapter?.list?.add(pollResultItem) adapter?.list?.add(pollResultItem)
} }
} else { } else {
@ -123,6 +132,10 @@ class PollResultsFragment(
} }
} }
private fun isOptionSelfVoted(poll: Poll, index: Int): Boolean {
return poll.votedSelf?.contains(index) == true
}
private fun initEditButton(showEditButton: Boolean) { private fun initEditButton(showEditButton: Boolean) {
if (showEditButton) { if (showEditButton) {
_binding?.editVoteButton?.visibility = View.VISIBLE _binding?.editVoteButton?.visibility = View.VISIBLE