Merge "Fix a11y for controls header" into tm-qpr-dev am: 2639c3b316

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22100308

Change-Id: If2f0ff66110bb8dc23254e41b3e6ae1d487078a0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Fabian Kozynski
2023-03-20 16:59:30 +00:00
committed by Automerger Merge Worker
2 changed files with 51 additions and 0 deletions

View File

@@ -608,6 +608,7 @@ class ControlsUiControllerImpl @Inject constructor (
if (items.size == 1) {
spinner.setBackground(null)
anchor.setOnClickListener(null)
anchor.isClickable = false
return
} else {
spinner.background = parent.context.resources

View File

@@ -200,6 +200,56 @@ class ControlsUiControllerImplTest : SysuiTestCase() {
verify(taskViewFactory).create(eq(context), eq(uiExecutor), any())
}
@Test
fun testSingleAppHeaderIsNotClickable() {
mockLayoutInflater()
val packageName = "pkg"
`when`(authorizedPanelsRepository.getAuthorizedPanels()).thenReturn(setOf(packageName))
val panel = SelectedItem.PanelItem("App name", ComponentName(packageName, "cls"))
val serviceInfo = setUpPanel(panel)
underTest.show(parent, {}, context)
val captor = argumentCaptor<ControlsListingController.ControlsListingCallback>()
verify(controlsListingController).addCallback(capture(captor))
captor.value.onServicesUpdated(listOf(serviceInfo))
FakeExecutor.exhaustExecutors(uiExecutor, bgExecutor)
val header: View = parent.requireViewById(R.id.controls_header)
assertThat(header.isClickable).isFalse()
assertThat(header.hasOnClickListeners()).isFalse()
}
@Test
fun testMultipleAppHeaderIsClickable() {
mockLayoutInflater()
val packageName1 = "pkg"
val panel1 = SelectedItem.PanelItem("App name 1", ComponentName(packageName1, "cls"))
val serviceInfo1 = setUpPanel(panel1)
val packageName2 = "pkg"
val panel2 = SelectedItem.PanelItem("App name 2", ComponentName(packageName2, "cls"))
val serviceInfo2 = setUpPanel(panel2)
`when`(authorizedPanelsRepository.getAuthorizedPanels())
.thenReturn(setOf(packageName1, packageName2))
underTest.show(parent, {}, context)
val captor = argumentCaptor<ControlsListingController.ControlsListingCallback>()
verify(controlsListingController).addCallback(capture(captor))
captor.value.onServicesUpdated(listOf(serviceInfo1, serviceInfo2))
FakeExecutor.exhaustExecutors(uiExecutor, bgExecutor)
val header: View = parent.requireViewById(R.id.controls_header)
assertThat(header.isClickable).isTrue()
assertThat(header.hasOnClickListeners()).isTrue()
}
@Test
fun testPanelControllerStartActivityWithCorrectArguments() {
mockLayoutInflater()