@@ -32,6 +32,7 @@ import com.github.libretube.extensions.TAG
3232import com.github.libretube.extensions.ceilHalf
3333import com.github.libretube.extensions.dpToPx
3434import com.github.libretube.extensions.setOnDismissListener
35+ import com.github.libretube.extensions.toID
3536import com.github.libretube.extensions.toastFromMainDispatcher
3637import com.github.libretube.helpers.ImageHelper
3738import com.github.libretube.helpers.NavigationHelper
@@ -206,17 +207,7 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist
206207 binding.playAll.isGone = true
207208 } else {
208209 binding.playAll.setOnClickListener {
209- if (playlistFeed.isEmpty()) return @setOnClickListener
210-
211- val sortedStreams = getSortedVideos()
212- PlayingQueue .setStreams(sortedStreams)
213-
214- NavigationHelper .navigateVideo(
215- requireContext(),
216- sortedStreams.first().url,
217- playlistId = playlistId,
218- keepQueue = true
219- )
210+ startVideoItemPlayback(getSortedVideos().first())
220211 }
221212 }
222213
@@ -243,7 +234,8 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist
243234 binding.bookmark.text = getString(R .string.shuffle)
244235 binding.bookmark.setOnClickListener {
245236 val queue = playlistFeed.shuffled()
246- PlayingQueue .add(* queue.toTypedArray())
237+ PlayingQueue .setStreams(queue)
238+
247239 NavigationHelper .navigateVideo(
248240 requireContext(),
249241 queue.firstOrNull()?.url,
@@ -276,6 +268,20 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist
276268 }
277269 }
278270
271+ private fun startVideoItemPlayback (streamItem : StreamItem ) {
272+ if (playlistFeed.isEmpty()) return
273+
274+ val sortedStreams = getSortedVideos()
275+ PlayingQueue .setStreams(sortedStreams)
276+
277+ NavigationHelper .navigateVideo(
278+ requireContext(),
279+ streamItem.url?.toID(),
280+ playlistId = playlistId,
281+ keepQueue = true
282+ )
283+ }
284+
279285 /* *
280286 * If the playlist is bookmarked, update its content if modified by the uploader
281287 */
@@ -324,7 +330,9 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist
324330 videos.toMutableList(),
325331 playlistId,
326332 playlistType
327- )
333+ ) { streamItem ->
334+ startVideoItemPlayback(streamItem)
335+ }
328336 // TODO make sure the adapter is set once in onViewCreated
329337 binding.playlistRecView.adapter = playlistAdapter
330338
0 commit comments