Prevent updating of seekbar text when not scrubbing.

This prevents the device from waking every 100ms to do
measure/layout (even when the screen is off) due the
scrubbing text fields updating.

Test: Manual
Fixes: 234078584
Fixes: 231049108
Change-Id: Ie1362762bfe3dd3c4204ea53561a9657bf314b41
This commit is contained in:
Hawkwood Glazier
2022-06-01 16:26:19 +00:00
parent c416376c38
commit 1c07d1231b
2 changed files with 27 additions and 6 deletions

View File

@@ -99,7 +99,9 @@ open class SeekBarObserver(
holder.seekBar.setMax(data.duration)
val totalTimeString = DateUtils.formatElapsedTime(
data.duration / DateUtils.SECOND_IN_MILLIS)
holder.scrubbingTotalTimeView.text = totalTimeString
if (data.scrubbing) {
holder.scrubbingTotalTimeView.text = totalTimeString
}
data.elapsedTime?.let {
if (!data.scrubbing && !(seekBarResetAnimator?.isRunning ?: false)) {
@@ -113,9 +115,12 @@ open class SeekBarObserver(
holder.seekBar.progress = it
}
}
val elapsedTimeString = DateUtils.formatElapsedTime(
it / DateUtils.SECOND_IN_MILLIS)
holder.scrubbingElapsedTimeView.text = elapsedTimeString
if (data.scrubbing) {
holder.scrubbingElapsedTimeView.text = elapsedTimeString
}
holder.seekBar.contentDescription = holder.seekBar.context.getString(
R.string.controls_media_seekbar_description,

View File

@@ -178,8 +178,10 @@ class SeekBarObserverTest : SysuiTestCase() {
}
@Test
fun seekBarProgress_enabled_timeViewsHaveTime() {
val data = SeekBarViewModel.Progress(enabled = true, true, true, false, 3000, 120000)
fun seekBarProgress_enabledAndScrubbing_timeViewsHaveTime() {
val isEnabled = true
val isScrubbing = true
val data = SeekBarViewModel.Progress(isEnabled, true, true, isScrubbing, 3000, 120000)
observer.onChanged(data)
@@ -188,8 +190,22 @@ class SeekBarObserverTest : SysuiTestCase() {
}
@Test
fun seekBarProgress_disabled_timeViewsEmpty() {
val data = SeekBarViewModel.Progress(enabled = false, true, true, false, 3000, 120000)
fun seekBarProgress_disabledAndScrubbing_timeViewsEmpty() {
val isEnabled = false
val isScrubbing = true
val data = SeekBarViewModel.Progress(isEnabled, true, true, isScrubbing, 3000, 120000)
observer.onChanged(data)
assertThat(scrubbingElapsedTimeView.text).isEqualTo("")
assertThat(scrubbingTotalTimeView.text).isEqualTo("")
}
@Test
fun seekBarProgress_enabledAndNotScrubbing_timeViewsEmpty() {
val isEnabled = true
val isScrubbing = false
val data = SeekBarViewModel.Progress(isEnabled, true, true, isScrubbing, 3000, 120000)
observer.onChanged(data)