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 +