From 3fc6a66527c6af940b45dd0d2ce1f3fb19491fa0 Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 29 Jun 2022 16:10:11 +0000 Subject: [PATCH] Ensure TalkBack announces the selected playback speed in the UI menu Issue: google/ExoPlayer#10298 #minor-release PiperOrigin-RevId: 457991028 --- RELEASENOTES.md | 4 ++++ .../main/java/androidx/media3/ui/PlayerControlView.java | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index e0a6694d68..1032af35ba 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -18,6 +18,10 @@ `MetadataRenderer(MetadataOutput, Looper, MetadataDecoderFactory, boolean)` to specify whether the renderer will output metadata early or in sync with the player position. +* UI: + * Ensure TalkBack announces the currently active speed option in the + playback controls menu + ([#10298](https://github.com/google/ExoPlayer/issues/10298)). * RTSP: * Add RTP reader for H263 ([#63](https://github.com/androidx/media/pull/63)). diff --git a/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java b/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java index 7ab349bd1d..8ec6d27498 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/PlayerControlView.java @@ -1811,7 +1811,13 @@ public class PlayerControlView extends FrameLayout { if (position < playbackSpeedTexts.length) { holder.textView.setText(playbackSpeedTexts[position]); } - holder.checkView.setVisibility(position == selectedIndex ? VISIBLE : INVISIBLE); + if (position == selectedIndex) { + holder.itemView.setSelected(true); + holder.checkView.setVisibility(VISIBLE); + } else { + holder.itemView.setSelected(false); + holder.checkView.setVisibility(INVISIBLE); + } holder.itemView.setOnClickListener( v -> { if (position != selectedIndex) {