Bug 1879819 - Improve rating description in list of add-ons

fenix/124.1.0
William Durand 4 months ago committed by mergify[bot]
parent c2179540f5
commit ca23a8e95b

@ -64,9 +64,13 @@ class AddonDetailsBindingDelegate(
private fun bindRating(addon: Addon) {
addon.rating?.let { rating ->
val resources = binding.root.resources
val ratingContentDescription = resources.getString(R.string.mozac_feature_addons_rating_content_description)
val ratingContentDescription =
resources.getString(R.string.mozac_feature_addons_rating_content_description_2)
binding.ratingLabel.contentDescription = String.format(ratingContentDescription, rating.average)
binding.ratingView.rating = rating.average
val reviewCount = resources.getString(R.string.mozac_feature_addons_user_rating_count_2)
binding.reviewCount.contentDescription = String.format(reviewCount, numberFormatter.format(rating.reviews))
binding.reviewCount.text = numberFormatter.format(rating.reviews)
if (addon.ratingUrl.isNotBlank()) {
@ -76,7 +80,6 @@ class AddonDetailsBindingDelegate(
interactor.openWebsite(addon.ratingUrl.toUri())
}
}
binding.ratingLabel.joinContextDescriptions(String.format(ratingContentDescription, rating.average))
}
}
@ -103,7 +106,7 @@ class AddonDetailsBindingDelegate(
val formattedDate = dateFormatter.format(addon.updatedAtDate)
binding.lastUpdatedText.text = formattedDate
binding.lastUpdatedLabel.joinContextDescriptions(formattedDate)
binding.lastUpdatedLabel.joinContentDescriptions(formattedDate)
}
private fun bindVersion(addon: Addon) {
@ -121,7 +124,7 @@ class AddonDetailsBindingDelegate(
} else {
binding.versionText.setOnLongClickListener(null)
}
binding.versionLabel.joinContextDescriptions(version)
binding.versionLabel.joinContentDescriptions(version)
}
private fun bindAuthor(addon: Addon) {
@ -142,7 +145,7 @@ class AddonDetailsBindingDelegate(
interactor.openWebsite(author.url.toUri())
}
}
binding.authorLabel.joinContextDescriptions(author.name)
binding.authorLabel.joinContentDescriptions(author.name)
}
private fun bindDetails(addon: Addon) {
@ -192,7 +195,7 @@ class AddonDetailsBindingDelegate(
}
@VisibleForTesting
internal fun TextView.joinContextDescriptions(text: String) {
internal fun TextView.joinContentDescriptions(text: String) {
this.contentDescription = "${this.text} $text"
}
}

@ -69,12 +69,15 @@ class AddonDetailsBindingDelegateTest {
)
assertEquals(4.5f, binding.ratingView.rating)
assertEquals("100", binding.reviewCount.text)
val ratingContentDescription = testContext.getString(R.string.mozac_feature_addons_rating_content_description)
val formattedRatting = String.format(ratingContentDescription, 4.3f)
val expectedContentDescription = binding.ratingLabel.text.toString() + " " + formattedRatting
assertEquals(expectedContentDescription, binding.ratingLabel.contentDescription)
val ratingContentDescription = testContext.getString(R.string.mozac_feature_addons_rating_content_description_2)
var formattedRatting = String.format(ratingContentDescription, 4.3f)
assertEquals(formattedRatting, binding.ratingLabel.contentDescription)
assertEquals(IMPORTANT_FOR_ACCESSIBILITY_NO, binding.ratingView.importantForAccessibility)
val reviewContentDescription = testContext.getString(R.string.mozac_feature_addons_user_rating_count_2)
formattedRatting = String.format(reviewContentDescription, 100)
assertEquals(formattedRatting, binding.reviewCount.contentDescription)
}
@Test

Loading…
Cancel
Save