Merge "[Chipbar] Don't add null icon descriptions to the main description." into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-12-08 01:43:50 +00:00
committed by Android (Google) Code Review
2 changed files with 37 additions and 5 deletions

View File

@@ -156,11 +156,14 @@ open class ChipbarCoordinator @Inject constructor(
}
// ---- Overall accessibility ----
currentView.requireViewById<ViewGroup>(
R.id.chipbar_inner
).contentDescription =
"${newInfo.startIcon.icon.contentDescription.loadContentDescription(context)} " +
"${newInfo.text.loadText(context)}"
val iconDesc = newInfo.startIcon.icon.contentDescription
val loadedIconDesc = if (iconDesc != null) {
"${iconDesc.loadContentDescription(context)} "
} else {
""
}
currentView.requireViewById<ViewGroup>(R.id.chipbar_inner).contentDescription =
"$loadedIconDesc${newInfo.text.loadText(context)}"
// ---- Haptics ----
newInfo.vibrationEffect?.let {

View File

@@ -109,6 +109,35 @@ class ChipbarCoordinatorTest : SysuiTestCase() {
underTest.start()
}
@Test
fun displayView_contentDescription_iconHasDescription() {
underTest.displayView(
createChipbarInfo(
Icon.Resource(R.drawable.ic_cake, ContentDescription.Loaded("loadedCD")),
Text.Loaded("text"),
endItem = null,
)
)
val contentDescView = getChipbarView().requireViewById<ViewGroup>(R.id.chipbar_inner)
assertThat(contentDescView.contentDescription.toString()).contains("loadedCD")
assertThat(contentDescView.contentDescription.toString()).contains("text")
}
@Test
fun displayView_contentDescription_iconHasNoDescription() {
underTest.displayView(
createChipbarInfo(
Icon.Resource(R.drawable.ic_cake, contentDescription = null),
Text.Loaded("text"),
endItem = null,
)
)
val contentDescView = getChipbarView().requireViewById<ViewGroup>(R.id.chipbar_inner)
assertThat(contentDescView.contentDescription.toString()).isEqualTo("text")
}
@Test
fun displayView_loadedIcon_correctlyRendered() {
val drawable = context.getDrawable(R.drawable.ic_celebration)!!