Fix minor radio bug
This commit is contained in:
@@ -525,28 +525,19 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback
|
|||||||
timerJob = null
|
timerJob = null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun startRadio(
|
fun setupRadio(endpoint: NavigationEndpoint.Endpoint.Watch?) =
|
||||||
endpoint: NavigationEndpoint.Endpoint.Watch?,
|
startRadio(endpoint= endpoint, justAdd = true)
|
||||||
) {
|
|
||||||
startRadio(
|
|
||||||
videoId = endpoint?.videoId,
|
|
||||||
playlistId = endpoint?.playlistId,
|
|
||||||
playlistSetVideoId = endpoint?.playlistSetVideoId,
|
|
||||||
parameters = endpoint?.params,
|
|
||||||
justAdd = false
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun startRadio(
|
fun playRadio(endpoint: NavigationEndpoint.Endpoint.Watch?) =
|
||||||
videoId: String?,
|
startRadio(endpoint= endpoint, justAdd = false)
|
||||||
playlistId: String? = null,
|
|
||||||
playlistSetVideoId: String? = null,
|
private fun startRadio(endpoint: NavigationEndpoint.Endpoint.Watch?, justAdd: Boolean) {
|
||||||
parameters: String? = null,
|
|
||||||
justAdd: Boolean = true
|
|
||||||
) {
|
|
||||||
radio = null
|
radio = null
|
||||||
YoutubePlayer.Radio(
|
YoutubePlayer.Radio(
|
||||||
videoId, playlistId, playlistSetVideoId, parameters
|
endpoint?.videoId,
|
||||||
|
endpoint?.playlistId,
|
||||||
|
endpoint?.playlistSetVideoId,
|
||||||
|
endpoint?.params
|
||||||
).let {
|
).let {
|
||||||
coroutineScope.launch(Dispatchers.Main) {
|
coroutineScope.launch(Dispatchers.Main) {
|
||||||
if (justAdd) {
|
if (justAdd) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package it.vfsfitvnm.vimusic.ui.components.themed
|
package it.vfsfitvnm.vimusic.ui.components.themed
|
||||||
|
|
||||||
import android.os.Bundle
|
|
||||||
import androidx.compose.animation.AnimatedContentScope
|
import androidx.compose.animation.AnimatedContentScope
|
||||||
import androidx.compose.animation.ExperimentalAnimationApi
|
import androidx.compose.animation.ExperimentalAnimationApi
|
||||||
import androidx.compose.animation.with
|
import androidx.compose.animation.with
|
||||||
@@ -14,9 +13,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.input.pointer.pointerInput
|
import androidx.compose.ui.input.pointer.pointerInput
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.core.os.bundleOf
|
|
||||||
import androidx.media3.common.MediaItem
|
import androidx.media3.common.MediaItem
|
||||||
import androidx.media3.common.Player
|
|
||||||
import it.vfsfitvnm.route.RouteHandler
|
import it.vfsfitvnm.route.RouteHandler
|
||||||
import it.vfsfitvnm.route.empty
|
import it.vfsfitvnm.route.empty
|
||||||
import it.vfsfitvnm.vimusic.Database
|
import it.vfsfitvnm.vimusic.Database
|
||||||
@@ -31,6 +28,7 @@ import it.vfsfitvnm.vimusic.ui.screens.rememberArtistRoute
|
|||||||
import it.vfsfitvnm.vimusic.ui.screens.rememberCreatePlaylistRoute
|
import it.vfsfitvnm.vimusic.ui.screens.rememberCreatePlaylistRoute
|
||||||
import it.vfsfitvnm.vimusic.ui.screens.rememberPlaylistOrAlbumRoute
|
import it.vfsfitvnm.vimusic.ui.screens.rememberPlaylistOrAlbumRoute
|
||||||
import it.vfsfitvnm.vimusic.utils.*
|
import it.vfsfitvnm.vimusic.utils.*
|
||||||
|
import it.vfsfitvnm.youtubemusic.models.NavigationEndpoint
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -152,7 +150,12 @@ fun NonQueuedMediaItemMenu(
|
|||||||
onDismiss = onDismiss,
|
onDismiss = onDismiss,
|
||||||
onStartRadio = {
|
onStartRadio = {
|
||||||
binder?.player?.forcePlay(mediaItem)
|
binder?.player?.forcePlay(mediaItem)
|
||||||
binder?.startRadio(videoId = mediaItem.mediaId, playlistId = mediaItem.mediaMetadata.extras?.getString("playlistId"))
|
binder?.setupRadio(
|
||||||
|
NavigationEndpoint.Endpoint.Watch(
|
||||||
|
videoId = mediaItem.mediaId,
|
||||||
|
playlistId = mediaItem.mediaMetadata.extras?.getString("playlistId")
|
||||||
|
)
|
||||||
|
)
|
||||||
},
|
},
|
||||||
onPlaySingle = {
|
onPlaySingle = {
|
||||||
binder?.player?.forcePlay(mediaItem)
|
binder?.player?.forcePlay(mediaItem)
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ fun ArtistScreen(
|
|||||||
colorFilter = ColorFilter.tint(colorPalette.text),
|
colorFilter = ColorFilter.tint(colorPalette.text),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.clickable {
|
.clickable {
|
||||||
binder?.startRadio(artist.shuffleEndpoint)
|
binder?.playRadio(artist.shuffleEndpoint)
|
||||||
}
|
}
|
||||||
.shadow(elevation = 2.dp, shape = CircleShape)
|
.shadow(elevation = 2.dp, shape = CircleShape)
|
||||||
.background(
|
.background(
|
||||||
@@ -176,7 +176,7 @@ fun ArtistScreen(
|
|||||||
colorFilter = ColorFilter.tint(colorPalette.text),
|
colorFilter = ColorFilter.tint(colorPalette.text),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.clickable {
|
.clickable {
|
||||||
binder?.startRadio(artist.radioEndpoint)
|
binder?.playRadio(artist.radioEndpoint)
|
||||||
}
|
}
|
||||||
.shadow(elevation = 2.dp, shape = CircleShape)
|
.shadow(elevation = 2.dp, shape = CircleShape)
|
||||||
.background(
|
.background(
|
||||||
|
|||||||
@@ -217,11 +217,11 @@ fun SearchResultScreen(
|
|||||||
is YouTube.Item.Playlist -> playlistOrAlbumRoute(item.info.endpoint!!.browseId)
|
is YouTube.Item.Playlist -> playlistOrAlbumRoute(item.info.endpoint!!.browseId)
|
||||||
is YouTube.Item.Song -> {
|
is YouTube.Item.Song -> {
|
||||||
binder?.player?.forcePlay(item.asMediaItem)
|
binder?.player?.forcePlay(item.asMediaItem)
|
||||||
binder?.startRadio(item.info.endpoint)
|
binder?.setupRadio(item.info.endpoint)
|
||||||
}
|
}
|
||||||
is YouTube.Item.Video -> {
|
is YouTube.Item.Video -> {
|
||||||
binder?.player?.forcePlay(item.asMediaItem)
|
binder?.player?.forcePlay(item.asMediaItem)
|
||||||
binder?.startRadio(item.info.endpoint)
|
binder?.setupRadio(item.info.endpoint)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user