diff --git a/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt b/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt index 3ae6da4ed..0bebd8f1f 100644 --- a/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt +++ b/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt @@ -105,7 +105,6 @@ object ImportHelper { */ @OptIn(ExperimentalSerializationApi::class) suspend fun exportSubscriptions(activity: Activity, uri: Uri, importFormat: ImportFormat) { - val token = PreferenceHelper.getToken() val subs = SubscriptionHelper.getSubscriptions() when (importFormat) { diff --git a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt index 5d20a9084..f73c0c821 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt @@ -13,6 +13,7 @@ import androidx.core.view.updatePadding import androidx.recyclerview.widget.RecyclerView import com.github.libretube.R import com.github.libretube.api.PlaylistsHelper +import com.github.libretube.api.obj.Playlists import com.github.libretube.api.obj.StreamItem import com.github.libretube.constants.IntentData import com.github.libretube.databinding.VideoRowBinding @@ -45,7 +46,8 @@ class PlaylistAdapter( val originalFeed: MutableList, private val sortedFeed: MutableList, private val playlistId: String, - private val playlistType: PlaylistType + private val playlistType: PlaylistType, + private val onVideoClick: (StreamItem) -> Unit ) : RecyclerView.Adapter() { private var visibleCount = minOf(20, sortedFeed.size) @@ -92,7 +94,7 @@ class PlaylistAdapter( thumbnailDuration.setFormattedDuration(streamItem.duration ?: -1, streamItem.isShort, streamItem.uploaded) root.setOnClickListener { - NavigationHelper.navigateVideo(root.context, streamItem.url, playlistId) + onVideoClick(streamItem) } val activity = (root.context as BaseActivity) diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt index 8dfcca4ff..dc5d68ca8 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt @@ -32,6 +32,7 @@ import com.github.libretube.extensions.TAG import com.github.libretube.extensions.ceilHalf import com.github.libretube.extensions.dpToPx import com.github.libretube.extensions.setOnDismissListener +import com.github.libretube.extensions.toID import com.github.libretube.extensions.toastFromMainDispatcher import com.github.libretube.helpers.ImageHelper import com.github.libretube.helpers.NavigationHelper @@ -206,17 +207,7 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist binding.playAll.isGone = true } else { binding.playAll.setOnClickListener { - if (playlistFeed.isEmpty()) return@setOnClickListener - - val sortedStreams = getSortedVideos() - PlayingQueue.setStreams(sortedStreams) - - NavigationHelper.navigateVideo( - requireContext(), - sortedStreams.first().url, - playlistId = playlistId, - keepQueue = true - ) + startVideoItemPlayback(getSortedVideos().first()) } } @@ -243,7 +234,8 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist binding.bookmark.text = getString(R.string.shuffle) binding.bookmark.setOnClickListener { val queue = playlistFeed.shuffled() - PlayingQueue.add(*queue.toTypedArray()) + PlayingQueue.setStreams(queue) + NavigationHelper.navigateVideo( requireContext(), queue.firstOrNull()?.url, @@ -276,6 +268,20 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist } } + private fun startVideoItemPlayback(streamItem: StreamItem) { + if (playlistFeed.isEmpty()) return + + val sortedStreams = getSortedVideos() + PlayingQueue.setStreams(sortedStreams) + + NavigationHelper.navigateVideo( + requireContext(), + streamItem.url?.toID(), + playlistId = playlistId, + keepQueue = true + ) + } + /** * If the playlist is bookmarked, update its content if modified by the uploader */ @@ -324,7 +330,9 @@ class PlaylistFragment : DynamicLayoutManagerFragment(R.layout.fragment_playlist videos.toMutableList(), playlistId, playlistType - ) + ) { streamItem -> + startVideoItemPlayback(streamItem) + } // TODO make sure the adapter is set once in onViewCreated binding.playlistRecView.adapter = playlistAdapter