Explorar o código

make own votes bold in result screen

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe %!s(int64=3) %!d(string=hai) anos
pai
achega
167aa43ca0

+ 2 - 1
app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultItem.kt

@@ -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....
 )

+ 11 - 2
app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultViewHolder.kt

@@ -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
-) : RecyclerView.ViewHolder(binding.root) {
+    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) {

+ 17 - 4
app/src/main/java/com/nextcloud/talk/polls/ui/PollResultsFragment.kt

@@ -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