Skip to content

Commit

Permalink
Merge pull request #5683 from aneesh1122/Fixing-YT-related-things
Browse files Browse the repository at this point in the history
yt sync improvements in artists page
  • Loading branch information
fast4x authored Feb 14, 2025
2 parents 50abe39 + fa04480 commit 1912a3f
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.requiredHeight
import androidx.compose.foundation.layout.requiredSize
Expand Down Expand Up @@ -75,6 +76,7 @@ import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.Shadow
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.StrokeJoin
import androidx.compose.ui.graphics.compositeOver
import androidx.compose.ui.graphics.drawscope.Stroke
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalConfiguration
Expand Down Expand Up @@ -600,6 +602,20 @@ inline fun SelectorArtistsDialog(
)
.align(Alignment.Center)
)
if (artist?.isYoutubeArtist == true) {
Image(
painter = painterResource(R.drawable.ytmusic),
colorFilter = ColorFilter.tint(
Color.Red.copy(0.75f).compositeOver(Color.White)
),
modifier = Modifier
.size(40.dp)
.padding(all = 5.dp)
.offset(10.dp,10.dp),
contentDescription = "Background Image",
contentScale = ContentScale.Fit
)
}
values[idArtist].name?.let { it1 ->
BasicText(
text = cleanPrefix(it1),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ fun AlbumItem(
alternative: Boolean = false,
yearCentered: Boolean? = true,
showAuthors: Boolean? = false,
isYoutubeAlbum: Boolean = false,
disableScrollingText: Boolean
) {
AlbumItem(
Expand All @@ -85,7 +86,8 @@ fun AlbumItem(
thumbnailSizeDp = thumbnailSizeDp,
alternative = alternative,
modifier = modifier,
disableScrollingText = disableScrollingText
disableScrollingText = disableScrollingText,
isYoutubeAlbum = isYoutubeAlbum
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ fun ArtistItem(
modifier: Modifier = Modifier,
alternative: Boolean = false,
disableScrollingText: Boolean,
isYoutubeArtist : Boolean = false
isYoutubeArtist : Boolean = false,
smallThumbnail: Boolean = false
) {
ArtistItem(
thumbnailUrl = artist.thumbnail?.url,
Expand All @@ -81,7 +82,8 @@ fun ArtistItem(
modifier = modifier,
alternative = alternative,
disableScrollingText = disableScrollingText,
isYoutubeArtist = isYoutubeArtist
isYoutubeArtist = isYoutubeArtist,
smallThumbnail = smallThumbnail
)
}

Expand All @@ -96,7 +98,8 @@ fun ArtistItem(
alternative: Boolean = false,
showName: Boolean = true,
disableScrollingText: Boolean,
isYoutubeArtist : Boolean = false
isYoutubeArtist : Boolean = false,
smallThumbnail: Boolean = false
) {
ItemContainer(
alternative = alternative,
Expand All @@ -120,7 +123,7 @@ fun ArtistItem(
Color.Red.copy(0.75f).compositeOver(Color.White)
),
modifier = Modifier
.size(40.dp)
.size(if (smallThumbnail) 30.dp else 40.dp)
.padding(all = 5.dp),
contentDescription = "Background Image",
contentScale = ContentScale.Fit
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,9 +335,7 @@ fun PlaylistItem(
}

}
if (browseId?.isNotEmpty() == true && name?.startsWith(
PIPED_PREFIX) == false
) {
if ((browseId?.isNotEmpty() == true && name?.startsWith(PIPED_PREFIX) == false) || isYoutubePlaylist) {
Image(
painter = painterResource(R.drawable.ytmusic),
colorFilter = ColorFilter.tint(if (isYoutubePlaylist) Color.Red.copy(0.75f).compositeOver(Color.White) else colorPalette().text),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ import it.fast4x.rimusic.utils.showFloatingIconKey
import me.bush.translator.Translator
import it.fast4x.rimusic.colorPalette
import it.fast4x.rimusic.isVideoEnabled
import it.fast4x.rimusic.models.Album
import it.fast4x.rimusic.typography
import it.fast4x.rimusic.ui.components.SwipeablePlaylistItem
import it.fast4x.rimusic.ui.components.themed.NonQueuedMediaItemMenu
Expand All @@ -130,6 +131,7 @@ import it.fast4x.rimusic.utils.manageDownload
import it.fast4x.rimusic.utils.playVideo
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

Expand Down Expand Up @@ -526,13 +528,20 @@ fun ArtistOverviewItems(
//// }
// }
is Innertube.AlbumItem -> {
var albumById by remember { mutableStateOf<Album?>(null) }
LaunchedEffect(item) {
CoroutineScope(Dispatchers.IO).launch {
albumById = Database.album(item.key).firstOrNull()
}
}
AlbumItem(
album = item,
thumbnailSizePx = thumbnailSizePx,
thumbnailSizeDp = thumbnailSizeDp,
alternative = true,
yearCentered = true,
showAuthors = true,
isYoutubeAlbum = albumById?.isYoutubeAlbum == true,
modifier = Modifier.clickable(onClick = {
navController.navigate(route = "${NavRoutes.album.name}/${item.key}")
}),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,9 @@ import it.fast4x.rimusic.enums.PopupType
import it.fast4x.rimusic.enums.QueueType
import it.fast4x.rimusic.enums.ThumbnailRoundness
import it.fast4x.rimusic.enums.UiType
import it.fast4x.rimusic.models.Album
import it.fast4x.rimusic.models.Artist
import it.fast4x.rimusic.models.Playlist
import it.fast4x.rimusic.thumbnailShape
import it.fast4x.rimusic.typography
import it.fast4x.rimusic.ui.components.CustomModalBottomSheet
Expand Down Expand Up @@ -121,6 +123,7 @@ import it.fast4x.rimusic.utils.showFloatingIconKey
import it.fast4x.rimusic.utils.thumbnailRoundnessKey
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.launch
import kotlin.random.Random

Expand Down Expand Up @@ -634,12 +637,19 @@ fun ArtistOverviewModern(

is Innertube.AlbumItem -> {
println("Innertube artistmodern AlbumItem: ${item.info?.name}")
var albumById by remember { mutableStateOf<Album?>(null) }
LaunchedEffect(item) {
CoroutineScope(Dispatchers.IO).launch {
albumById = Database.album(item.key).firstOrNull()
}
}
AlbumItem(
album = item,
alternative = true,
thumbnailSizePx = albumThumbnailSizePx,
thumbnailSizeDp = albumThumbnailSizeDp,
disableScrollingText = disableScrollingText,
isYoutubeAlbum = albumById?.isYoutubeAlbum == true,
modifier = Modifier.clickable(onClick = {
navController.navigate("${NavRoutes.album.name}/${item.key}")
})
Expand All @@ -649,12 +659,18 @@ fun ArtistOverviewModern(

is Innertube.ArtistItem -> {
println("Innertube v ArtistItem: ${item.info?.name}")
var artistById by remember { mutableStateOf<Artist?>(null) }
LaunchedEffect(item) {
CoroutineScope(Dispatchers.IO).launch {
artistById = Database.artist(item.key).firstOrNull()
}
}
ArtistItem(
artist = item,
thumbnailSizePx = artistThumbnailSizePx,
thumbnailSizeDp = artistThumbnailSizeDp,
disableScrollingText = disableScrollingText,
isYoutubeArtist = artist?.isYoutubeArtist == true,
isYoutubeArtist = artistById?.isYoutubeArtist == true,
modifier = Modifier.clickable(onClick = {
navController.navigate("${NavRoutes.artist.name}/${item.key}")
})
Expand All @@ -663,12 +679,19 @@ fun ArtistOverviewModern(

is Innertube.PlaylistItem -> {
println("Innertube v PlaylistItem: ${item.info?.name}")
var playlistById by remember { mutableStateOf<Playlist?>(null) }
LaunchedEffect(item) {
CoroutineScope(Dispatchers.IO).launch {
playlistById = Database.playlist(item.key.substringAfter("VL")).firstOrNull()
}
}
PlaylistItem(
playlist = item,
alternative = true,
thumbnailSizePx = playlistThumbnailSizePx,
thumbnailSizeDp = playlistThumbnailSizeDp,
disableScrollingText = disableScrollingText,
isYoutubePlaylist = playlistById?.isYoutubePlaylist == true,
modifier = Modifier.clickable(onClick = {
navController.navigate("${NavRoutes.playlist.name}/${item.key}")
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1554,7 +1554,7 @@ fun LocalPlaylistSongs(
}
},
showOnSyncronize = !playlistPreview.playlist.browseId.isNullOrBlank(),
showLinkUnlink = isNetworkConnected(context) && (playlistPreview.playlist.browseId != null),
showLinkUnlink = isNetworkConnected(context) && (!playlistPreview.playlist.browseId.isNullOrBlank()),
/*
onSyncronize = {
if (!playlistPreview.playlist.name.startsWith(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand Down Expand Up @@ -39,6 +40,8 @@ import it.fast4x.rimusic.LocalPlayerServiceBinder
import it.fast4x.rimusic.R
import it.fast4x.rimusic.enums.NavRoutes
import it.fast4x.rimusic.models.Album
import it.fast4x.rimusic.models.Artist
import it.fast4x.rimusic.models.Playlist
import it.fast4x.rimusic.models.SongAlbumMap
import it.fast4x.rimusic.ui.components.LocalMenuState
import it.fast4x.rimusic.ui.components.Skeleton
Expand Down Expand Up @@ -78,6 +81,7 @@ import it.fast4x.rimusic.utils.showButtonPlayerVideoKey
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

Expand Down Expand Up @@ -478,11 +482,18 @@ fun SearchResultScreen(
}
}
) {
var albumById by remember { mutableStateOf<Album?>(null) }
LaunchedEffect(album) {
CoroutineScope(Dispatchers.IO).launch {
albumById = Database.album(album.key).firstOrNull()
}
}
AlbumItem(
yearCentered = false,
album = album,
thumbnailSizePx = thumbnailSizePx,
thumbnailSizeDp = thumbnailSizeDp,
isYoutubeAlbum = albumById?.isYoutubeAlbum == true,
modifier = Modifier
.combinedClickable(
onClick = {
Expand Down Expand Up @@ -526,15 +537,23 @@ fun SearchResultScreen(
emptyItemsText = emptyItemsText,
headerContent = headerContent,
itemContent = { artist ->
var artistById by remember { mutableStateOf<Artist?>(null) }
LaunchedEffect(artist) {
CoroutineScope(Dispatchers.IO).launch {
artistById = Database.artist(artist.key).firstOrNull()
}
}
ArtistItem(
artist = artist,
thumbnailSizePx = thumbnailSizePx,
thumbnailSizeDp = thumbnailSizeDp,
isYoutubeArtist = artistById?.isYoutubeArtist == true,
modifier = Modifier
.clickable(onClick = {
navController.navigate("${NavRoutes.artist.name}/${artist.key}")
}),
disableScrollingText = disableScrollingText
disableScrollingText = disableScrollingText,
smallThumbnail = true
)
},
itemPlaceholderContent = {
Expand Down Expand Up @@ -663,11 +682,18 @@ fun SearchResultScreen(
emptyItemsText = emptyItemsText,
headerContent = headerContent,
itemContent = { playlist ->
var playlistById by remember { mutableStateOf<Playlist?>(null) }
LaunchedEffect(playlist) {
CoroutineScope(Dispatchers.IO).launch {
playlistById = Database.playlist(playlist.key.substringAfter("VL")).firstOrNull()
}
}
PlaylistItem(
playlist = playlist,
thumbnailSizePx = thumbnailSizePx,
thumbnailSizeDp = thumbnailSizeDp,
showSongsCount = false,
isYoutubePlaylist = playlistById?.isYoutubePlaylist == true,
modifier = Modifier
.clickable(onClick = {
//playlistRoute(playlist.key)
Expand Down

0 comments on commit 1912a3f

Please sign in to comment.