Show album artist under album name on album cards (#2117)

## Description
Show album artist under album name on album cards

### Related issues
Fixes #2055

### Testing
Android TV 

## Screenshots
<img width="1920" height="1080" alt="pr1-albums-grid-artist-year"
src="https://github.com/user-attachments/assets/d00a8f78-8bf9-41da-8220-5cc7f6862cf5"
/>

### AI or LLM usage
Claude did the code, I reviewed it, then deployed a -debug.apk to my
device to confirm feature live.

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
bobberb 2026-10-26 14:15:29 -04:00 • committed by GitHub
parent de67bccb39
commit 90a2d6d459
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 54 additions and 2 deletions

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)
}
}