From 0dd009333a01a92a9aeca2e5a487a52c5317e047 Mon Sep 17 00:00:00 2001 From: Beth Thibodeau Date: Fri, 12 May 2023 14:42:12 -0500 Subject: [PATCH] Do not allow focus on invisible buttons Fixes: 282157959 Test: atest MediaControlPanelTest Test: manual with Talkback Change-Id: I0c6d1d5e7e071f9ff6825c8eabe25ecba73271f3 --- .../systemui/media/controls/ui/MediaControlPanel.java | 2 ++ .../systemui/media/controls/ui/MediaControlPanelTest.kt | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java index 8f0ac28382a48..9eda7ae2586d0 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/MediaControlPanel.java @@ -1235,6 +1235,8 @@ public class MediaControlPanel { if ((buttonId == R.id.actionPrev && semanticActions.getReservePrev()) || (buttonId == R.id.actionNext && semanticActions.getReserveNext())) { notVisibleValue = ConstraintSet.INVISIBLE; + mMediaViewHolder.getAction(buttonId).setFocusable(visible); + mMediaViewHolder.getAction(buttonId).setClickable(visible); } else { notVisibleValue = ConstraintSet.GONE; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt index 1e465c7917952..68c33fb93fe6f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/MediaControlPanelTest.kt @@ -530,6 +530,8 @@ public class MediaControlPanelTest : SysuiTestCase() { verify(collapsedSet).setVisibility(R.id.actionPlayPause, ConstraintSet.VISIBLE) assertThat(actionNext.isEnabled()).isTrue() + assertThat(actionNext.isFocusable()).isTrue() + assertThat(actionNext.isClickable()).isTrue() assertThat(actionNext.contentDescription).isEqualTo("next") verify(collapsedSet).setVisibility(R.id.actionNext, ConstraintSet.VISIBLE) @@ -576,6 +578,8 @@ public class MediaControlPanelTest : SysuiTestCase() { assertThat(actionPrev.isEnabled()).isFalse() assertThat(actionPrev.drawable).isNull() + assertThat(actionPrev.isFocusable()).isFalse() + assertThat(actionPrev.isClickable()).isFalse() verify(expandedSet).setVisibility(R.id.actionPrev, ConstraintSet.INVISIBLE) assertThat(actionNext.isEnabled()).isFalse() @@ -610,6 +614,8 @@ public class MediaControlPanelTest : SysuiTestCase() { assertThat(actionNext.isEnabled()).isFalse() assertThat(actionNext.drawable).isNull() + assertThat(actionNext.isFocusable()).isFalse() + assertThat(actionNext.isClickable()).isFalse() verify(expandedSet).setVisibility(R.id.actionNext, ConstraintSet.INVISIBLE) }