mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-11 07:29:14 +01:00
Compare commits
1
Commits
eb55858cc4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
11276c2e1f |
@@ -1070,7 +1070,6 @@ class PlaybackController(
|
|||||||
}
|
}
|
||||||
lastSavedPositionMs = savedPositionMs
|
lastSavedPositionMs = savedPositionMs
|
||||||
loadWindow(anchor.position, autoplay = false, startPositionMs = savedPositionMs)
|
loadWindow(anchor.position, autoplay = false, startPositionMs = savedPositionMs)
|
||||||
player?.takeIf { it.itemCount > 0 }?.ensurePrepared()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun stop() = startLock.withLock { stopLocked() }
|
private suspend fun stop() = startLock.withLock { stopLocked() }
|
||||||
@@ -1452,7 +1451,7 @@ class PlaybackController(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onError(message: UiMessage) {
|
override fun onError(message: UiMessage) {
|
||||||
if (player?.playWhenReady == true) showMessage(message)
|
showMessage(message)
|
||||||
refresh()
|
refresh()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -343,75 +343,18 @@ class PlaybackControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun restoringAPreviousQueuePreparesTheSessionWithoutPlaying() {
|
fun togglingPlayOnARestoredQueuePreparesBeforePlaying() {
|
||||||
seedAlbum(3, sourceId = 1)
|
|
||||||
runBlocking { queues.replace(listOf(queues.albumEntry(1, "al1"))) }
|
|
||||||
|
|
||||||
controller.connect()
|
|
||||||
await { handle.operations.contains("prepare") }
|
|
||||||
|
|
||||||
assertFalse(handle.operations.contains("play"))
|
|
||||||
assertFalse(handle.isIdle)
|
|
||||||
assertFalse(handle.playWhenReady)
|
|
||||||
assertFalse(controller.state.value.isPlaying)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun aPrepareFailureBeforePlaybackIsNotReported() {
|
|
||||||
seedAlbum(3, sourceId = 1)
|
|
||||||
runBlocking { queues.replace(listOf(queues.albumEntry(1, "al1"))) }
|
|
||||||
|
|
||||||
controller.connect()
|
|
||||||
await { handle.operations.contains("prepare") }
|
|
||||||
|
|
||||||
handle.fail(UiMessage(R.string.playback_error_network))
|
|
||||||
assertTrue(messages.isEmpty())
|
|
||||||
|
|
||||||
controller.togglePlayPause()
|
|
||||||
await { handle.operations.contains("play") }
|
|
||||||
handle.fail(UiMessage(R.string.playback_error_network))
|
|
||||||
await { messages.isNotEmpty() }
|
|
||||||
|
|
||||||
assertEquals(1, messages.size)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun restoringAnEmptyQueueDoesNotPrepare() {
|
|
||||||
seedAlbum(3, sourceId = 1)
|
|
||||||
|
|
||||||
controller.connect()
|
|
||||||
await { controller.ready.value }
|
|
||||||
|
|
||||||
assertTrue(handle.items.isEmpty())
|
|
||||||
assertFalse(handle.operations.contains("prepare"))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun restoringAnOfflineQueueWithoutDownloadsDoesNotPrepare() {
|
|
||||||
seedAlbum(3, sourceId = 1)
|
|
||||||
runBlocking { queues.replace(listOf(queues.albumEntry(1, "al1"))) }
|
|
||||||
setOffline()
|
|
||||||
|
|
||||||
controller.connect()
|
|
||||||
await { controller.ready.value }
|
|
||||||
|
|
||||||
assertTrue(handle.items.isEmpty())
|
|
||||||
assertFalse(handle.operations.contains("prepare"))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun togglingPlayOnARestoredQueuePlaysThePreparedWindow() {
|
|
||||||
seedAlbum(5, sourceId = 1)
|
seedAlbum(5, sourceId = 1)
|
||||||
runBlocking { queues.replace(listOf(queues.albumEntry(1, "al1"))) }
|
runBlocking { queues.replace(listOf(queues.albumEntry(1, "al1"))) }
|
||||||
|
|
||||||
controller.connect()
|
controller.connect()
|
||||||
await { handle.operations.contains("prepare") }
|
await { handle.items.isNotEmpty() }
|
||||||
handle.operations.clear()
|
handle.operations.clear()
|
||||||
|
|
||||||
controller.togglePlayPause()
|
controller.togglePlayPause()
|
||||||
await { handle.operations.contains("play") }
|
await { handle.operations.contains("play") }
|
||||||
|
|
||||||
assertEquals(listOf("play"), handle.operations)
|
assertEquals(listOf("prepare", "play"), handle.operations)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user