From bc83f9b274c7ca413cda22ec6a681723b2bf9fdb Mon Sep 17 00:00:00 2001 From: Koen Date: Wed, 27 Sep 2023 10:44:30 +0200 Subject: [PATCH] Changed queue behaviour to be more like VLC. --- .../fragment/mainactivity/main/ChannelFragment.kt | 6 +++++- .../fragment/mainactivity/main/ContentFeedView.kt | 6 +++++- .../fragment/mainactivity/main/DownloadsFragment.kt | 2 ++ .../fragment/mainactivity/main/HistoryFragment.kt | 2 ++ .../fragment/mainactivity/main/VideoDetailView.kt | 1 + .../main/java/com/futo/platformplayer/states/StatePlayer.kt | 2 +- 6 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt index b6720cc7..a327aee0 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/ChannelFragment.kt @@ -170,6 +170,7 @@ class ChannelFragment : MainFragment() { adapter.onChannelClicked.subscribe { c -> fragment.navigate(c) } adapter.onContentClicked.subscribe { v, _ -> if(v is IPlatformVideo) { + StatePlayer.instance.clearQueue(); fragment.navigate(v).maximizeVideoDetail(); } else if (v is IPlatformPlaylist) { fragment.navigate(v); @@ -192,7 +193,10 @@ class ChannelFragment : MainFragment() { } adapter.onContentUrlClicked.subscribe { url, contentType -> when(contentType) { - ContentType.MEDIA -> fragment.navigate(url).maximizeVideoDetail(); + ContentType.MEDIA -> { + StatePlayer.instance.clearQueue(); + fragment.navigate(url).maximizeVideoDetail(); + }; ContentType.URL -> fragment.navigate(url); else -> {}; } 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 a7382097..7fa5d8fe 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 @@ -125,6 +125,7 @@ abstract class ContentFeedView : FeedView(content.withTimestamp(time)).maximizeVideoDetail(); else @@ -137,7 +138,10 @@ abstract class ContentFeedView : FeedView fragment.navigate(url).maximizeVideoDetail(); + ContentType.MEDIA -> { + StatePlayer.instance.clearQueue(); + fragment.navigate(url).maximizeVideoDetail(); + }; ContentType.PLAYLIST -> fragment.navigate(url); ContentType.URL -> fragment.navigate(url); else -> {}; diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/DownloadsFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/DownloadsFragment.kt index 9d1f5680..fa1159bf 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/DownloadsFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/DownloadsFragment.kt @@ -13,6 +13,7 @@ import com.futo.platformplayer.downloads.VideoDownload import com.futo.platformplayer.downloads.VideoLocal import com.futo.platformplayer.logging.Logger import com.futo.platformplayer.states.StateDownloads +import com.futo.platformplayer.states.StatePlayer import com.futo.platformplayer.views.AnyInsertedAdapterView import com.futo.platformplayer.views.AnyInsertedAdapterView.Companion.asAnyWithTop import com.futo.platformplayer.views.others.ProgressBar @@ -123,6 +124,7 @@ class DownloadsFragment : MainFragment() { _listDownloaded = findViewById(R.id.list_downloaded) .asAnyWithTop(findViewById(R.id.downloads_top)) { it.onClick.subscribe { + StatePlayer.instance.clearQueue(); _frag.navigate(it).maximizeVideoDetail(); } }; diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HistoryFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HistoryFragment.kt index ac1eb702..a5cafe86 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HistoryFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HistoryFragment.kt @@ -12,6 +12,7 @@ import androidx.core.widget.addTextChangedListener import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.futo.platformplayer.* +import com.futo.platformplayer.states.StatePlayer import com.futo.platformplayer.states.StatePlaylists import com.futo.platformplayer.views.others.TagsView import com.futo.platformplayer.views.adapters.HistoryListAdapter @@ -44,6 +45,7 @@ class HistoryFragment : MainFragment() { adapter.onClick.subscribe { v -> val diff = v.video.duration - v.position; val vid: Any = if (diff > 5) { v.video.withTimestamp(v.position) } else { v.video }; + StatePlayer.instance.clearQueue(); navigate(vid).maximizeVideoDetail(); editSearch.clearFocus(); inputMethodManager.hideSoftInputFromWindow(editSearch.windowToken, 0); diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt index 031d98f3..84b66898 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt @@ -301,6 +301,7 @@ class VideoDetailView : ConstraintLayout { _player.attachPlayer(); _container_content_liveChat.onRaidNow.subscribe { + StatePlayer.instance.clearQueue(); fragment.navigate(it.targetUrl); }; 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 a2dfd6f9..a80cc09f 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt @@ -136,7 +136,7 @@ class StatePlayer { fun setQueueType(queueType : String) { when(queueType) { TYPE_QUEUE -> { - _queueRemoveOnFinish = true; + _queueRemoveOnFinish = false; } TYPE_WATCHLATER -> { _queueRemoveOnFinish = true;