Merge "Do not extend timeout if not playing" into rvc-dev am: ad26c28ca0 am: ae5de253e9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11745383

Change-Id: I2494ebf5c9251d8d44914a9ee81d99470a2e5f77
This commit is contained in:
TreeHugger Robot
2020-06-05 03:22:26 +00:00
committed by Automerger Merge Worker
2 changed files with 17 additions and 2 deletions

View File

@@ -87,12 +87,15 @@ class MediaTimeoutListener @Inject constructor(
if (DEBUG) {
Log.v(TAG, "onPlaybackStateChanged: $state")
}
expireMediaTimeout(key, "playback state ativity - $state, $key")
if (state == null || !isPlayingState(state.state)) {
if (DEBUG) {
Log.v(TAG, "schedule timeout for $key")
}
if (cancellation != null) {
if (DEBUG) Log.d(TAG, "cancellation already exists, continuing.")
return
}
expireMediaTimeout(key, "PLAYBACK STATE CHANGED - $state")
cancellation = mainExecutor.executeDelayed({
cancellation = null
@@ -103,6 +106,7 @@ class MediaTimeoutListener @Inject constructor(
timeoutCallback(key, timedOut)
}, PAUSED_MEDIA_TIMEOUT)
} else {
expireMediaTimeout(key, "playback started - $state, $key")
timedOut = false
timeoutCallback(key, timedOut)
}

View File

@@ -131,7 +131,7 @@ class MediaTimeoutListenerTest : SysuiTestCase() {
@Test
fun testOnPlaybackStateChanged_cancelsTimeout_whenResumed() {
// Assuming we're have a pending timeout
// Assuming we have a pending timeout
testOnPlaybackStateChanged_schedulesTimeout_whenPaused()
mediaCallbackCaptor.value.onPlaybackStateChanged(PlaybackState.Builder()
@@ -139,6 +139,17 @@ class MediaTimeoutListenerTest : SysuiTestCase() {
verify(cancellationRunnable).run()
}
@Test
fun testOnPlaybackStateChanged_reusesTimeout_whenNotPlaying() {
// Assuming we have a pending timeout
testOnPlaybackStateChanged_schedulesTimeout_whenPaused()
clearInvocations(cancellationRunnable)
mediaCallbackCaptor.value.onPlaybackStateChanged(PlaybackState.Builder()
.setState(PlaybackState.STATE_STOPPED, 0L, 0f).build())
verify(cancellationRunnable, never()).run()
}
@Test
fun testTimeoutCallback_invokedIfTimeout() {
// Assuming we're have a pending timeout