mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 22:29:09 +00:00
make own votes bold in result screen
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
a95c0d997b
commit
167aa43ca0
@ -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....
|
||||||
)
|
)
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user