summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-06-05 03:19:07 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-06-05 03:19:07 +0000
commitad26c28ca056f352b041d5b0f6606fe8979ac9b9 (patch)
treea2c24cc833731747bbd8702217cf16c450ddc634
parent2b29f91c46506e746e0312b6d1cce96fe6d207e2 (diff)
parent6c4a1d00c7e98e381104bd3bdf026afa12eb4dbc (diff)
Merge "Do not extend timeout if not playing" into rvc-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/media/MediaTimeoutListener.kt6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/media/MediaTimeoutListenerTest.kt13
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()