Skip to content

Commit d4371aa

Browse files
committed
fix: repeat mode doesn't work in offline player
1 parent f2ce7fd commit d4371aa

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

app/src/main/java/com/github/libretube/services/OfflinePlayerService.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ open class OfflinePlayerService : AbstractPlayerService() {
5353

5454
private val playerListener = object : Player.Listener {
5555
override fun onPlaybackStateChanged(playbackState: Int) {
56-
if (playbackState == Player.STATE_ENDED && PlayerHelper.isAutoPlayEnabled()) {
57-
playNextVideo(PlayingQueue.getNext() ?: return)
56+
if (playbackState == Player.STATE_ENDED) {
57+
playNextVideo()
5858
}
5959

6060
if (playbackState == Player.STATE_READY) {
@@ -203,11 +203,16 @@ open class OfflinePlayerService : AbstractPlayerService() {
203203
PlayingQueue.insertRelatedStreams(downloads.map { it.download.toStreamItem() })
204204
}
205205

206-
private fun playNextVideo(videoId: String) {
207-
setVideoId(videoId)
206+
private fun playNextVideo(videoId: String? = null) {
207+
if (PlayingQueue.repeatMode == Player.REPEAT_MODE_ONE) {
208+
exoPlayer?.seekTo(0)
209+
} else if (PlayerHelper.isAutoPlayEnabled()) {
210+
val nextId = videoId ?: PlayingQueue.getNext() ?: return
211+
setVideoId(nextId)
208212

209-
scope.launch {
210-
startPlayback()
213+
scope.launch {
214+
startPlayback()
215+
}
211216
}
212217
}
213218

0 commit comments

Comments
 (0)