Skip to content

Commit 5882367

Browse files
committed
fix: queue missing when playing playlist video in background
1 parent 28b59fa commit 5882367

6 files changed

Lines changed: 25 additions & 16 deletions

File tree

app/src/main/java/com/github/libretube/helpers/NavigationHelper.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ object NavigationHelper {
4949
@SuppressLint("UnsafeOptInUsageError")
5050
fun navigateVideo(
5151
context: Context,
52-
videoUrlOrId: String?,
52+
videoId: String?,
5353
playlistId: String? = null,
5454
channelId: String? = null,
5555
keepQueue: Boolean = false,
@@ -58,15 +58,15 @@ object NavigationHelper {
5858
forceVideo: Boolean = false,
5959
audioOnlyPlayerRequested: Boolean = false,
6060
) {
61-
if (videoUrlOrId == null) return
61+
if (videoId == null) return
6262

6363
// attempt to attach to the current media session first by using the corresponding
6464
// video/audio player instance
6565
val activity = ContextHelper.unwrapActivity<MainActivity>(context)
6666
val attachedToRunningPlayer = activity.runOnPlayerFragment {
6767
try {
6868
PlayingQueue.clear()
69-
this.playNextVideo(videoUrlOrId.toID())
69+
this.playNextVideo(videoId.toID())
7070

7171
if (audioOnlyPlayerRequested) {
7272
// switch to audio only player
@@ -86,11 +86,11 @@ object NavigationHelper {
8686

8787
val attachedToRunningAudioPlayer = activity.runOnAudioPlayerFragment {
8888
PlayingQueue.clear()
89-
this.playNextVideo(videoUrlOrId.toID())
89+
this.playNextVideo(videoId.toID())
9090

9191
if (!audioOnlyPlayerRequested) {
9292
// switch to video only player
93-
this.switchToVideoMode(videoUrlOrId.toID())
93+
this.switchToVideoMode(videoId.toID())
9494
} else {
9595
// maximize player
9696
this.binding.playerMotionLayout.transitionToStart()
@@ -106,7 +106,7 @@ object NavigationHelper {
106106
// its own!
107107
BackgroundHelper.playOnBackground(
108108
context,
109-
videoUrlOrId.toID(),
109+
videoId.toID(),
110110
timestamp,
111111
playlistId,
112112
channelId,
@@ -117,7 +117,7 @@ object NavigationHelper {
117117
} else {
118118
openVideoPlayerFragment(
119119
context,
120-
videoUrlOrId.toID(),
120+
videoId.toID(),
121121
playlistId,
122122
channelId,
123123
keepQueue,

app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ class MainActivity : BaseActivity() {
523523
override fun onGlobalLayout() {
524524
NavigationHelper.navigateVideo(
525525
context = this@MainActivity,
526-
videoUrlOrId = it,
526+
videoId = it,
527527
timestamp = intent.getLongExtra(IntentData.timeStamp, 0L)
528528
)
529529

@@ -533,7 +533,7 @@ class MainActivity : BaseActivity() {
533533
} else {
534534
NavigationHelper.navigateVideo(
535535
context = this@MainActivity,
536-
videoUrlOrId = it,
536+
videoId = it,
537537
timestamp = intent.getLongExtra(IntentData.timeStamp, 0L)
538538
)
539539
}

app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.core.view.updatePadding
1313
import androidx.recyclerview.widget.RecyclerView
1414
import com.github.libretube.R
1515
import com.github.libretube.api.PlaylistsHelper
16-
import com.github.libretube.api.obj.Playlists
1716
import com.github.libretube.api.obj.StreamItem
1817
import com.github.libretube.constants.IntentData
1918
import com.github.libretube.databinding.VideoRowBinding
@@ -106,9 +105,13 @@ class PlaylistAdapter(
106105
) { _, _ ->
107106
notifyItemChanged(position)
108107
}
109-
val sheet = VideoOptionsBottomSheet()
110-
sheet.arguments = bundleOf(IntentData.streamItem to streamItem)
111-
sheet.show(fragmentManager, VideoOptionsBottomSheet::class.java.name)
108+
VideoOptionsBottomSheet().apply {
109+
arguments = bundleOf(
110+
IntentData.streamItem to streamItem,
111+
IntentData.playlistId to playlistId
112+
)
113+
}
114+
.show(fragmentManager, VideoOptionsBottomSheet::class.java.name)
112115
true
113116
}
114117

app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ class SubscriptionsFragment : DynamicLayoutManagerFragment(R.layout.fragment_sub
306306

307307
NavigationHelper.navigateVideo(
308308
requireContext(),
309-
videoUrlOrId = streams.first().url,
309+
videoId = streams.first().url,
310310
keepQueue = true
311311
)
312312
}

app/src/main/java/com/github/libretube/ui/sheets/DownloadOptionsBottomSheet.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class DownloadOptionsBottomSheet : BaseBottomSheet() {
5050
}
5151

5252
R.string.go_to_video -> {
53-
NavigationHelper.navigateVideo(requireContext(), videoUrlOrId = videoId)
53+
NavigationHelper.navigateVideo(requireContext(), videoId = videoId)
5454
}
5555

5656
R.string.share -> {

app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class VideoOptionsBottomSheet : BaseBottomSheet() {
3939

4040
override fun onCreate(savedInstanceState: Bundle?) {
4141
streamItem = arguments?.parcelable(IntentData.streamItem)!!
42+
val playlistId = arguments?.getString(IntentData.playlistId)
4243

4344
val videoId = streamItem.url?.toID() ?: return
4445

@@ -57,7 +58,12 @@ class VideoOptionsBottomSheet : BaseBottomSheet() {
5758
when (optionsList[which]) {
5859
// Start the background mode
5960
R.string.playOnBackground -> {
60-
NavigationHelper.navigateVideo(requireContext(), videoId, audioOnlyPlayerRequested = true)
61+
NavigationHelper.navigateVideo(
62+
requireContext(),
63+
videoId = videoId,
64+
playlistId = playlistId,
65+
audioOnlyPlayerRequested = true
66+
)
6167
}
6268
// Add Video to Playlist Dialog
6369
R.string.addToPlaylist -> {

0 commit comments

Comments
 (0)