diff --git a/vector/src/main/java/im/vector/riotx/core/ui/views/ReadReceiptsView.kt b/vector/src/main/java/im/vector/riotx/core/ui/views/ReadReceiptsView.kt
index 15a54248d7..cf5af902b0 100644
--- a/vector/src/main/java/im/vector/riotx/core/ui/views/ReadReceiptsView.kt
+++ b/vector/src/main/java/im/vector/riotx/core/ui/views/ReadReceiptsView.kt
@@ -28,6 +28,7 @@ import im.vector.riotx.features.home.room.detail.timeline.item.ReadReceiptData
import kotlinx.android.synthetic.main.view_read_receipts.view.*
private const val MAX_RECEIPT_DISPLAYED = 5
+private const val MAX_RECEIPT_DESCRIBED = 4
class ReadReceiptsView @JvmOverloads constructor(
context: Context,
@@ -51,6 +52,7 @@ class ReadReceiptsView @JvmOverloads constructor(
setOnClickListener(clickListener)
if (readReceipts.isNotEmpty()) {
isVisible = true
+ val displayNames = arrayListOf()
for (index in 0 until MAX_RECEIPT_DISPLAYED) {
val receiptData = readReceipts.getOrNull(index)
if (receiptData == null) {
@@ -58,6 +60,9 @@ class ReadReceiptsView @JvmOverloads constructor(
} else {
receiptAvatars[index].visibility = View.VISIBLE
avatarRenderer.render(receiptData.avatarUrl, receiptData.userId, receiptData.displayName, receiptAvatars[index])
+ if (null !=receiptData.displayName && displayNames.size MAX_RECEIPT_DISPLAYED) {
@@ -68,6 +73,13 @@ class ReadReceiptsView @JvmOverloads constructor(
} else {
receiptMore.visibility = View.GONE
}
+ when (displayNames.size) {
+ 0 -> setContentDescription(context.getResources().getQuantityString(R.plurals.fallback_users_read, readReceipts.size))
+ 1 -> setContentDescription(context.getString(R.string.one_user_read, displayNames.get(0)))
+ 2 -> setContentDescription(context.getString(R.string.two_users_read, displayNames.get(0), displayNames.get(1)))
+ 3 -> setContentDescription(context.getString(R.string.three_users_read, displayNames.get(0), displayNames.get(1), displayNames.get(2)))
+ else -> setContentDescription(context.getString(R.string.two_and_some_others_read, displayNames.get(0), displayNames.get(1), (readReceipts.size -2)))
+ }
} else {
isVisible = false
}
diff --git a/vector/src/main/res/layout/view_read_receipts.xml b/vector/src/main/res/layout/view_read_receipts.xml
index f477a979ec..4a6629d43e 100644
--- a/vector/src/main/res/layout/view_read_receipts.xml
+++ b/vector/src/main/res/layout/view_read_receipts.xml
@@ -15,6 +15,7 @@
android:background="?vctr_pill_receipt"
android:paddingStart="4dp"
android:paddingEnd="4dp"
+ android:importantForAccessibility = "no"
tools:text="999+" />
Create a new room
Close keys backup banner
+
+ %s, %s and %d others read
+ %s, %s and %s read
+ %s and %s read
+ %s read
+
+ - 1 user read
+ - %d users read
+
+
"The file '%1$s' (%2$s) is too large to upload. The limit is %3$s."
-
\ No newline at end of file
+