[Chipbar] Don't add null icon descriptions to the main description.

Fixes: 260951134
Test: verify active unlock chipbar doesn't contain "null" in its content
description
Test: atest ChipbarCoordinatorTest

Change-Id: I2de3de5cd9146825e9ec706a7f1d7a6b1bacc737
This commit is contained in:
Caitlin Shkuratov
2022-12-06 18:25:30 +00:00
parent 8338268582
commit 8d86871d01
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)!!