Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71ee6ff9 authored by Alex Shabalin's avatar Alex Shabalin Committed by Alexandr Shabalin
Browse files

Update Slider A11y label to be descriptive e.g. "4% Volume, Slider".

Fix: 409007478
Flag: EXEMPT trivial bugfix
Test: on a device with Talkback, atest MediaOutputAdapterTest
Change-Id: Iadecb553d136319564dddd3adad6072c3cd7b10b
parent 5d2d75e0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ class MediaOutputAdapterTest : SysuiTestCase() {
            assertThat(mSlider.value).isEqualTo(TEST_CURRENT_VOLUME)
            assertThat(mSlider.valueFrom).isEqualTo(0)
            assertThat(mSlider.valueTo).isEqualTo(TEST_MAX_VOLUME)
            assertThat(mSlider.stateDescription).isEqualTo("50%")
        }
    }

+1 −0
Original line number Diff line number Diff line
@@ -128,6 +128,7 @@
        android:layout_width="match_parent"
        android:layout_height="44dp"
        android:layout_marginVertical="3dp"
        android:contentDescription="@string/media_output_dialog_accessibility_seekbar"
        android:theme="@style/Theme.Material3.DynamicColors.DayNight"
        app:labelBehavior="gone"
        app:tickVisible="false"
+8 −0
Original line number Diff line number Diff line
@@ -400,6 +400,7 @@ class MediaOutputAdapter(controller: MediaSwitchingController) :
                    muteDrawable = muteDrawable,
                    isMuted = currentVolume == 0,
                )
                mSlider.stateDescription = getSliderStateDescription()
            }
        }

@@ -433,6 +434,7 @@ class MediaOutputAdapter(controller: MediaSwitchingController) :
                return
            }

            mSlider.isClickable = false
            mSlider.isEnabled = isVolumeControlAllowed
            mSlider.valueFrom = 0f
            mSlider.valueTo = maxVolume.toFloat()
@@ -452,6 +454,7 @@ class MediaOutputAdapter(controller: MediaSwitchingController) :

            mSlider.clearOnChangeListeners() // Prevent adding multiple listeners
            mSlider.addOnChangeListener { _: Slider, value: Float, fromUser: Boolean ->
                mSlider.stateDescription = getSliderStateDescription()
                if (fromUser) {
                    val seekBarVolume = value.toInt()
                    updateSliderIconsVisibility(
@@ -481,6 +484,11 @@ class MediaOutputAdapter(controller: MediaSwitchingController) :
            )
        }

        private fun getSliderStateDescription(): String {
            val percentage = (mSlider.value * 100 / mSlider.valueTo).toInt()
            return mContext.getString(R.string.media_output_dialog_volume_percentage, percentage)
        }

        private fun getMuteDrawable(isInputDevice: Boolean): Drawable? {
            return AppCompatResources.getDrawable(
                mContext,