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:
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user