From 88f3815585cf4772bf15c9829ebae44e47335f0c Mon Sep 17 00:00:00 2001 From: Koen <koen@pop-os.localdomain> Date: Wed, 15 Nov 2023 11:49:22 +0100 Subject: [PATCH] When clicking on a video it is added to queue instead of replacing queue. --- .../fragment/mainactivity/main/ContentFeedView.kt | 13 ++++++++----- .../com/futo/platformplayer/states/StatePlayer.kt | 6 ++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentFeedView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentFeedView.kt index bccbe8d5..da6329cc 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentFeedView.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ContentFeedView.kt @@ -166,11 +166,14 @@ abstract class ContentFeedView<TFragment> : FeedView<TFragment, IPlatformContent protected open fun onContentClicked(content: IPlatformContent, time: Long) { if(content is IPlatformVideo) { - StatePlayer.instance.clearQueue(); - if (Settings.instance.playback.shouldResumePreview(time)) - fragment.navigate<VideoDetailFragment>(content.withTimestamp(time)).maximizeVideoDetail(); - else - fragment.navigate<VideoDetailFragment>(content).maximizeVideoDetail(); + if (StatePlayer.instance.hasQueue) { + StatePlayer.instance.addToQueue(content) + } else { + if (Settings.instance.playback.shouldResumePreview(time)) + fragment.navigate<VideoDetailFragment>(content.withTimestamp(time)).maximizeVideoDetail(); + else + fragment.navigate<VideoDetailFragment>(content).maximizeVideoDetail(); + } } else if (content is IPlatformPlaylist) { fragment.navigate<PlaylistFragment>(content); } else if (content is IPlatformPost) { diff --git a/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt b/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt index 028c5b60..54991ed3 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt @@ -54,6 +54,12 @@ class StatePlayer { var queueShuffle: Boolean = false private set; + val hasQueue: Boolean get() { + synchronized(_queue) { + return _queue.isNotEmpty() + } + } + val queueName: String get() = _queueName ?: _queueType; //Events -- GitLab