diff options
| author | 2020-06-05 03:19:07 +0000 | |
|---|---|---|
| committer | 2020-06-05 03:19:07 +0000 | |
| commit | ad26c28ca056f352b041d5b0f6606fe8979ac9b9 (patch) | |
| tree | a2c24cc833731747bbd8702217cf16c450ddc634 | |
| parent | 2b29f91c46506e746e0312b6d1cce96fe6d207e2 (diff) | |
| parent | 6c4a1d00c7e98e381104bd3bdf026afa12eb4dbc (diff) | |
Merge "Do not extend timeout if not playing" into rvc-dev
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/media/MediaTimeoutListener.kt | 6 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/media/MediaTimeoutListenerTest.kt | 13 |
2 files changed, 17 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutListener.kt b/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutListener.kt index 359c2f5e297c..3c3f4a977ee7 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutListener.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaTimeoutListener.kt @@ -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) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaTimeoutListenerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaTimeoutListenerTest.kt index 643a3352c30c..7d44327b0d38 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaTimeoutListenerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaTimeoutListenerTest.kt @@ -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() @@ -140,6 +140,17 @@ class MediaTimeoutListenerTest : SysuiTestCase() { } @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 testOnPlaybackStateChanged_schedulesTimeout_whenPaused() |