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(
val pollOption: String,
val pollPercent: Int
val pollPercent: Int,
val selfVoted: Boolean
// val voters....
)

View File

@ -1,20 +1,29 @@
package com.nextcloud.talk.polls.adapters
import android.annotation.SuppressLint
import android.graphics.Typeface
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import com.nextcloud.talk.databinding.PollResultItemBinding
class PollResultViewHolder(
private val binding: PollResultItemBinding,
private val showDetails: Boolean
private val showDetails: Boolean,
) : RecyclerView.ViewHolder(binding.root) {
@SuppressLint("SetTextI18n")
fun bind(pollResultItem: PollResultItem, clickListener: PollResultItemClickListener) {
binding.root.setOnClickListener { clickListener.onClick(pollResultItem) }
binding.pollOptionText.text = pollResultItem.pollOption
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
if (showDetails) {

View File

@ -86,8 +86,8 @@ class PollResultsFragment(
}
}
private fun initAdapter(showDetails: Boolean) {
adapter = PollResultsAdapter(this, showDetails)
private fun initAdapter(showParticipants: Boolean) {
adapter = PollResultsAdapter(this, showParticipants)
_binding?.pollResultsList?.adapter = adapter
_binding?.pollResultsList?.layoutManager = LinearLayoutManager(context)
}
@ -101,7 +101,12 @@ class PollResultsFragment(
val votersForThisOption = poll.details.filter { it.optionId == index }.size
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)
}
} else if (poll.votes != null) {
@ -115,7 +120,11 @@ class PollResultsFragment(
}
val optionsPercent = oneVoteInPercent * votersForThisOption
val pollResultItem = PollResultItem(option, optionsPercent)
val pollResultItem = PollResultItem(
option,
optionsPercent,
isOptionSelfVoted(poll, index)
)
adapter?.list?.add(pollResultItem)
}
} 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) {
if (showEditButton) {
_binding?.editVoteButton?.visibility = View.VISIBLE