From 0250eecf3aaea33ae29be33798297819a224d37e Mon Sep 17 00:00:00 2001 From: Beth Thibodeau Date: Mon, 24 Feb 2025 10:10:16 -0800 Subject: Revert "Update media progress bar content description" This reverts commit 24df7560c9ae59401bd2b452c63f072c97a2ae66. Reason for revert: b/398042513 Change-Id: Iba25aa76faf6e3abf63b28f8155f886e7ec78b27 --- .../controls/ui/binder/SeekBarObserverTest.kt | 35 +++--------- packages/SystemUI/res/values/strings.xml | 4 +- .../media/controls/ui/binder/SeekBarObserver.kt | 63 +++------------------- 3 files changed, 17 insertions(+), 85 deletions(-) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt index 943ada9346e7..4e14fec8408f 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/media/controls/ui/binder/SeekBarObserverTest.kt @@ -18,9 +18,6 @@ package com.android.systemui.media.controls.ui.binder import android.animation.Animator import android.animation.ObjectAnimator -import android.icu.text.MeasureFormat -import android.icu.util.Measure -import android.icu.util.MeasureUnit import android.testing.TestableLooper import android.view.View import android.widget.SeekBar @@ -33,7 +30,6 @@ import com.android.systemui.media.controls.ui.view.MediaViewHolder import com.android.systemui.media.controls.ui.viewmodel.SeekBarViewModel import com.android.systemui.res.R import com.google.common.truth.Truth.assertThat -import java.util.Locale import org.junit.Before import org.junit.Rule import org.junit.Test @@ -65,11 +61,11 @@ class SeekBarObserverTest : SysuiTestCase() { fun setUp() { context.orCreateTestableResources.addOverride( R.dimen.qs_media_enabled_seekbar_height, - enabledHeight, + enabledHeight ) context.orCreateTestableResources.addOverride( R.dimen.qs_media_disabled_seekbar_height, - disabledHeight, + disabledHeight ) seekBarView = SeekBar(context) @@ -114,31 +110,14 @@ class SeekBarObserverTest : SysuiTestCase() { @Test fun seekBarProgress() { - val elapsedTime = 3000 - val duration = (1.5 * 60 * 60 * 1000).toInt() // WHEN part of the track has been played - val data = SeekBarViewModel.Progress(true, true, true, false, elapsedTime, duration, true) + val data = SeekBarViewModel.Progress(true, true, true, false, 3000, 120000, true) observer.onChanged(data) // THEN seek bar shows the progress - assertThat(seekBarView.progress).isEqualTo(elapsedTime) - assertThat(seekBarView.max).isEqualTo(duration) - - val expectedProgress = - MeasureFormat.getInstance(Locale.getDefault(), MeasureFormat.FormatWidth.WIDE) - .formatMeasures(Measure(3, MeasureUnit.SECOND)) - val expectedDuration = - MeasureFormat.getInstance(Locale.getDefault(), MeasureFormat.FormatWidth.WIDE) - .formatMeasures( - Measure(1, MeasureUnit.HOUR), - Measure(30, MeasureUnit.MINUTE), - Measure(0, MeasureUnit.SECOND), - ) - val desc = - context.getString( - R.string.controls_media_seekbar_description, - expectedProgress, - expectedDuration, - ) + assertThat(seekBarView.progress).isEqualTo(3000) + assertThat(seekBarView.max).isEqualTo(120000) + + val desc = context.getString(R.string.controls_media_seekbar_description, "00:03", "02:00") assertThat(seekBarView.contentDescription).isEqualTo(desc) } diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 7ab36cb4372f..6fe598435433 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -3167,8 +3167,8 @@ Settings %1$s by %2$s is playing from %3$s - - %1$s of %2$s + + %1$s of %2$s %1$s is running diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt index c9716be52408..34f7c4dcaec0 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/binder/SeekBarObserver.kt @@ -18,9 +18,6 @@ package com.android.systemui.media.controls.ui.binder import android.animation.Animator import android.animation.ObjectAnimator -import android.icu.text.MeasureFormat -import android.icu.util.Measure -import android.icu.util.MeasureUnit import android.text.format.DateUtils import androidx.annotation.UiThread import androidx.lifecycle.Observer @@ -31,11 +28,8 @@ import com.android.systemui.media.controls.ui.drawable.SquigglyProgress import com.android.systemui.media.controls.ui.view.MediaViewHolder import com.android.systemui.media.controls.ui.viewmodel.SeekBarViewModel import com.android.systemui.res.R -import java.util.Locale private const val TAG = "SeekBarObserver" -private const val MIN_IN_SEC = 60 -private const val HOUR_IN_SEC = MIN_IN_SEC * 60 /** * Observer for changes from SeekBarViewModel. @@ -133,9 +127,10 @@ open class SeekBarObserver(private val holder: MediaViewHolder) : } holder.seekBar.setMax(data.duration) - val totalTimeDescription = formatTimeContentDescription(data.duration) + val totalTimeString = + DateUtils.formatElapsedTime(data.duration / DateUtils.SECOND_IN_MILLIS) if (data.scrubbing) { - holder.scrubbingTotalTimeView.text = formatTimeLabel(data.duration) + holder.scrubbingTotalTimeView.text = totalTimeString } data.elapsedTime?.let { @@ -153,62 +148,20 @@ open class SeekBarObserver(private val holder: MediaViewHolder) : } } - val elapsedTimeDescription = formatTimeContentDescription(it) + val elapsedTimeString = DateUtils.formatElapsedTime(it / DateUtils.SECOND_IN_MILLIS) if (data.scrubbing) { - holder.scrubbingElapsedTimeView.text = formatTimeLabel(it) + holder.scrubbingElapsedTimeView.text = elapsedTimeString } holder.seekBar.contentDescription = holder.seekBar.context.getString( R.string.controls_media_seekbar_description, - elapsedTimeDescription, - totalTimeDescription, + elapsedTimeString, + totalTimeString ) } } - /** Returns a time string suitable for display, e.g. "12:34" */ - private fun formatTimeLabel(milliseconds: Int): CharSequence { - return DateUtils.formatElapsedTime(milliseconds / DateUtils.SECOND_IN_MILLIS) - } - - /** - * Returns a time string suitable for content description, e.g. "12 minutes 34 seconds" - * - * Follows same logic as Chronometer#formatDuration - */ - private fun formatTimeContentDescription(milliseconds: Int): CharSequence { - var seconds = milliseconds / DateUtils.SECOND_IN_MILLIS - - val hours = - if (seconds >= HOUR_IN_SEC) { - seconds / HOUR_IN_SEC - } else { - 0 - } - seconds -= hours * HOUR_IN_SEC - - val minutes = - if (seconds >= MIN_IN_SEC) { - seconds / MIN_IN_SEC - } else { - 0 - } - seconds -= minutes * MIN_IN_SEC - - val measures = arrayListOf() - if (hours > 0) { - measures.add(Measure(hours, MeasureUnit.HOUR)) - } - if (minutes > 0) { - measures.add(Measure(minutes, MeasureUnit.MINUTE)) - } - measures.add(Measure(seconds, MeasureUnit.SECOND)) - - return MeasureFormat.getInstance(Locale.getDefault(), MeasureFormat.FormatWidth.WIDE) - .formatMeasures(*measures.toTypedArray()) - } - @VisibleForTesting open fun buildResetAnimator(targetTime: Int): Animator { val animator = @@ -216,7 +169,7 @@ open class SeekBarObserver(private val holder: MediaViewHolder) : holder.seekBar, "progress", holder.seekBar.progress, - targetTime + RESET_ANIMATION_DURATION_MS, + targetTime + RESET_ANIMATION_DURATION_MS ) animator.setAutoCancel(true) animator.duration = RESET_ANIMATION_DURATION_MS.toLong() -- cgit v1.2.3-59-g8ed1b