Merge Wholphin v1.1.0 while preserving Wolfskin features #27

Merged
justinzeus merged 72 commits from fm/wolfskin-upstream-1-1-0 into main 2026-11-05 01:49:35 +01:00
3 changed files with 54 additions and 2 deletions
Showing only changes of commit 90a2d6d459 - Show all commits

View file

@ -68,6 +68,7 @@ data class BaseItem(
BaseItemKind.EPISODE -> listOf(data.seasonEpisode, name).joinNotBlank(" - ")
BaseItemKind.SERIES -> data.seriesProductionYears
BaseItemKind.AUDIO -> listOf(data.album, artistsString).joinNotBlank(" - ")
BaseItemKind.MUSIC_ALBUM -> listOf(data.albumArtist ?: artistsString, data.productionYear?.toString()).joinNotBlank(" - ")
else -> data.productionYear?.toString()
}
}

View file

@ -522,9 +522,12 @@ fun ListItemAlbum(
}
val supportingContent =
remember(item, dense) {
if (!dense && item?.subtitle != null) {
// Album artist is already shown as the overline
val subtitle =
if (item?.type == BaseItemKind.MUSIC_ALBUM) item.data.productionYear?.toString() else item?.subtitle
if (!dense && subtitle != null) {
@Composable {
Text(item.subtitle ?: "")
Text(subtitle)
}
} else {
null

View file

@ -0,0 +1,48 @@
package com.github.damontecres.wholphin.data.model
import org.jellyfin.sdk.model.api.BaseItemDto
import org.jellyfin.sdk.model.api.BaseItemKind
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Test
import java.util.UUID
class BaseItemSubtitleTest {
private fun album(
albumArtist: String? = null,
artists: List<String>? = null,
productionYear: Int? = null,
) = BaseItem(
BaseItemDto(
id = UUID.randomUUID(),
type = BaseItemKind.MUSIC_ALBUM,
name = "Test Album",
albumArtist = albumArtist,
artists = artists,
productionYear = productionYear,
),
)
@Test
fun albumPrefersAlbumArtist() {
val item = album(albumArtist = "Album Artist", artists = listOf("A", "B"), productionYear = 2021)
assertEquals("Album Artist - 2021", item.subtitle)
}
@Test
fun albumFallsBackToArtists() {
val item = album(artists = listOf("A", "B"), productionYear = 2021)
assertEquals("A, B - 2021", item.subtitle)
}
@Test
fun albumWithoutYear() {
assertEquals("Album Artist", album(albumArtist = "Album Artist").subtitle)
}
@Test
fun albumWithoutArtist() {
assertEquals("2021", album(productionYear = 2021).subtitle)
assertNull(album(artists = emptyList()).subtitle)
}
}