diff --git a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt
index 8e2f0206a..c3805afe1 100644
--- a/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt
+++ b/app/src/main/java/com/nextcloud/talk/polls/adapters/PollResultVotersOverviewViewHolder.kt
@@ -23,6 +23,8 @@ package com.nextcloud.talk.polls.adapters
import android.annotation.SuppressLint
import android.text.TextUtils
import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.core.content.res.ResourcesCompat
import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.drawee.generic.RoundingParams
import com.facebook.drawee.interfaces.DraweeController
@@ -46,22 +48,47 @@ class PollResultVotersOverviewViewHolder(
binding.root.setOnClickListener { clickListener.onClick() }
- val lp = LinearLayout.LayoutParams(
- AVATAR_WIDTH,
- AVATAR_HEIGHT
+ val layoutParams = LinearLayout.LayoutParams(
+ AVATAR_SIZE,
+ AVATAR_SIZE
)
- item.detailsList.forEach {
+ var avatarsToDisplay = MAX_AVATARS
+ if (item.detailsList.size < avatarsToDisplay) {
+ avatarsToDisplay = item.detailsList.size
+ }
+ val shotsDots = item.detailsList.size > avatarsToDisplay
+
+ for (i in 0 until avatarsToDisplay) {
+ val pollDetails = item.detailsList[i]
val avatar = SimpleDraweeView(binding.root.context)
- avatar.layoutParams = lp
+
+ layoutParams.marginStart = i * AVATAR_OFFSET
+ avatar.layoutParams = layoutParams
+
+ avatar.translationZ = i.toFloat() * -1
val roundingParams = RoundingParams.fromCornersRadius(AVATAR_RADIUS)
roundingParams.roundAsCircle = true
+ roundingParams.borderColor = ResourcesCompat.getColor(
+ itemView.context.resources!!,
+ R.color.colorPrimary,
+ null
+ )
+ roundingParams.borderWidth = 2.0f
avatar.hierarchy.roundingParams = roundingParams
- avatar.controller = getAvatarDraweeController(it)
+ avatar.controller = getAvatarDraweeController(pollDetails)
binding.votersAvatarsOverviewWrapper.addView(avatar)
+
+ if (i == avatarsToDisplay - 1 && shotsDots) {
+ val dotsView = TextView(itemView.context)
+ layoutParams.marginStart = i * AVATAR_OFFSET + DOTS_OFFSET
+ dotsView.layoutParams = layoutParams
+ dotsView.text = DOTS_TEXT
+ binding.votersAvatarsOverviewWrapper.addView(dotsView)
+ }
}
}
@@ -104,8 +131,11 @@ class PollResultVotersOverviewViewHolder(
}
companion object {
- const val AVATAR_WIDTH = 90
- const val AVATAR_HEIGHT = 70
+ const val AVATAR_SIZE = 60
const val AVATAR_RADIUS = 5f
+ const val MAX_AVATARS = 10
+ const val AVATAR_OFFSET = AVATAR_SIZE - 10
+ const val DOTS_OFFSET = 70
+ const val DOTS_TEXT = "…"
}
}
diff --git a/app/src/main/res/layout/poll_result_voter_item.xml b/app/src/main/res/layout/poll_result_voter_item.xml
index 149a05271..7979a3e2d 100644
--- a/app/src/main/res/layout/poll_result_voter_item.xml
+++ b/app/src/main/res/layout/poll_result_voter_item.xml
@@ -23,8 +23,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingStart="@dimen/standard_half_padding"
- android:paddingEnd="@dimen/standard_half_padding"
android:paddingBottom="4dp"
tools:background="@color/white">
diff --git a/app/src/main/res/layout/poll_result_voters_overview_item.xml b/app/src/main/res/layout/poll_result_voters_overview_item.xml
index de5542cc2..34f1266b2 100644
--- a/app/src/main/res/layout/poll_result_voters_overview_item.xml
+++ b/app/src/main/res/layout/poll_result_voters_overview_item.xml
@@ -18,7 +18,7 @@
~ along with this program. If not, see .
-->
-
-
-
+