From 31e9c3d95e85f8c5e3d11c3ce401f2a35e1d62fa Mon Sep 17 00:00:00 2001 From: Ionut Andrei Oanca Date: Sun, 24 Jan 2021 01:02:10 +0100 Subject: [PATCH] Clear playlist in SyncPlay group --- src/components/syncPlay/core/Controller.js | 12 ++++++++++++ src/components/syncPlay/ui/players/NoActivePlayer.js | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/components/syncPlay/core/Controller.js b/src/components/syncPlay/core/Controller.js index 695ccde9f1..df0dbd177a 100644 --- a/src/components/syncPlay/core/Controller.js +++ b/src/components/syncPlay/core/Controller.js @@ -100,6 +100,18 @@ class Controller { }); } + /** + * Clears the playlist of a SyncPlay group. + * @param {Array} clearPlayingItem Whether to remove the playing item as well. + */ + clearPlaylist(clearPlayingItem = false) { + const apiClient = this.manager.getApiClient(); + apiClient.requestSyncPlayRemoveFromPlaylist({ + ClearPlaylist: true, + ClearPlayingItem: clearPlayingItem + }); + } + /** * Removes items from SyncPlay group playlist. * @param {Array} playlistItemIds The items to remove. diff --git a/src/components/syncPlay/ui/players/NoActivePlayer.js b/src/components/syncPlay/ui/players/NoActivePlayer.js index 48dfe953ba..92dced3ef4 100644 --- a/src/components/syncPlay/ui/players/NoActivePlayer.js +++ b/src/components/syncPlay/ui/players/NoActivePlayer.js @@ -45,6 +45,7 @@ class NoActivePlayer extends SyncPlay.Players.GenericPlayer { playbackManager._localPlay = playbackManager.play; playbackManager._localSetCurrentPlaylistItem = playbackManager.setCurrentPlaylistItem; + playbackManager._localClearQueue = playbackManager.clearQueue; playbackManager._localRemoveFromPlaylist = playbackManager.removeFromPlaylist; playbackManager._localMovePlaylistItem = playbackManager.movePlaylistItem; playbackManager._localQueue = playbackManager.queue; @@ -62,6 +63,7 @@ class NoActivePlayer extends SyncPlay.Players.GenericPlayer { playbackManager.play = this.playRequest; playbackManager.setCurrentPlaylistItem = this.setCurrentPlaylistItemRequest; + playbackManager.clearQueue = this.clearQueueRequest; playbackManager.removeFromPlaylist = this.removeFromPlaylistRequest; playbackManager.movePlaylistItem = this.movePlaylistItemRequest; playbackManager.queue = this.queueRequest; @@ -93,6 +95,7 @@ class NoActivePlayer extends SyncPlay.Players.GenericPlayer { playbackManager.play = playbackManager._localPlay; playbackManager.setCurrentPlaylistItem = playbackManager._localSetCurrentPlaylistItem; + playbackManager.clearQueue = this._localClearQueue; playbackManager.removeFromPlaylist = playbackManager._localRemoveFromPlaylist; playbackManager.movePlaylistItem = playbackManager._localMovePlaylistItem; playbackManager.queue = playbackManager._localQueue; @@ -247,6 +250,14 @@ class NoActivePlayer extends SyncPlay.Players.GenericPlayer { controller.setCurrentPlaylistItem(playlistItemId); } + /** + * Overrides PlaybackManager's clearQueue method. + */ + clearQueueRequest(clearPlayingItem, player) { + const controller = syncPlayManager.getController(); + controller.clearPlaylist(clearPlayingItem); + } + /** * Overrides PlaybackManager's removeFromPlaylist method. */