diff options
| -rw-r--r-- | packages/SystemUI/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt | 18 |
2 files changed, 16 insertions, 3 deletions
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index bc81a4b6bb67..a0c37db847a5 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -1812,6 +1812,7 @@ <string name="volume_ringer_change">Tap to change ringer mode</string> <string name="volume_ringer_mode">ringer mode</string> + <string name="volume_ringer_drawer_closed_content_description"><xliff:g id="volume ringer status" example="Ring">%1$s</xliff:g>, tap to change ringer mode </string> <!-- Hint for accessibility. For example: double tap to mute [CHAR_LIMIT=NONE] --> <string name="volume_ringer_hint_mute">mute</string> diff --git a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt index f98ad45f30bc..3bd2721dcfe5 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt @@ -196,15 +196,17 @@ constructor(private val viewModel: VolumeDialogRingerDrawerViewModel) { uiModel.availableButtons.fastForEachIndexed { index, ringerButton -> ringerButton?.let { val view = getChildAt(count - index - 1) + val isOpen = uiModel.drawerState is RingerDrawerState.Open if (index == uiModel.currentButtonIndex) { view.bindDrawerButton( - uiModel.selectedButton, + if (isOpen) it else uiModel.selectedButton, viewModel, + isOpen, isSelected = true, isAnimated = isAnimated, ) } else { - view.bindDrawerButton(it, viewModel, isAnimated) + view.bindDrawerButton(it, viewModel, isOpen, isAnimated = isAnimated) } } } @@ -214,12 +216,22 @@ constructor(private val viewModel: VolumeDialogRingerDrawerViewModel) { private fun View.bindDrawerButton( buttonViewModel: RingerButtonViewModel, viewModel: VolumeDialogRingerDrawerViewModel, + isOpen: Boolean, isSelected: Boolean = false, isAnimated: Boolean = false, ) { + val ringerContentDesc = context.getString(buttonViewModel.contentDescriptionResId) with(requireViewById<ImageButton>(R.id.volume_drawer_button)) { setImageResource(buttonViewModel.imageResId) - contentDescription = context.getString(buttonViewModel.contentDescriptionResId) + contentDescription = + if (isSelected && !isOpen) { + context.getString( + R.string.volume_ringer_drawer_closed_content_description, + ringerContentDesc, + ) + } else { + ringerContentDesc + } if (isSelected && !isAnimated) { setBackgroundResource(R.drawable.volume_drawer_selection_bg) setColorFilter( |