diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt index 1a210169f..8cb121c4d 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicUtils.kt @@ -9,6 +9,8 @@ import org.oxycblt.auxio.R import org.oxycblt.auxio.music.models.Album import org.oxycblt.auxio.music.models.Artist +// List of ID3 genres + Winamp extensions, each index corresponds to their int value. +// There are a lot more int-genre extensions as far as Im aware, but this works for most cases. private val ID3_GENRES = arrayOf( "Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk", "Grunge", "Hip-Hop", "Jazz", "Metal", "New Age", "Oldies", "Other", "Pop", "R&B", "Rap", "Reggae", "Rock", "Techno", diff --git a/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt b/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt index 00d29bdde..964753f26 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/coil/CoilUtils.kt @@ -35,7 +35,10 @@ fun ImageView.getCoverArt(album: Album) { // Get the artist image @BindingAdapter("artistImage") fun ImageView.getArtistImage(artist: Artist) { - val request = if (artist.numAlbums >= 4) { + // If there are more than one albums, then create a mosaic of them. + val request: ImageRequest + + if (artist.numAlbums >= 4) { val uris = mutableListOf() for (i in 0..3) { @@ -44,16 +47,24 @@ fun ImageView.getArtistImage(artist: Artist) { val fetcher = ArtistImageFetcher(context) - getDefaultRequest(context, this) + request = getDefaultRequest(context, this) .data(uris) .fetcher(fetcher) .error(R.drawable.ic_artist) .build() } else { - getDefaultRequest(context, this) - .data(artist.albums[0].coverUri) - .error(R.drawable.ic_artist) - .build() + // Otherwise, just get the first cover and use that + // If the artist doesn't have any albums [Which happens], then don't even bother with that. + if (artist.albums.isNotEmpty()) { + request = getDefaultRequest(context, this) + .data(artist.albums[0].coverUri) + .error(R.drawable.ic_artist) + .build() + } else { + setImageResource(R.drawable.ic_artist) + + return + } } Coil.imageLoader(context).enqueue(request) diff --git a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt index 2de285b6a..e135d2d90 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/processing/MusicSorter.kt @@ -75,8 +75,6 @@ class MusicSorter( // Find all albums that match the current artist name val artistAlbums = albums.filter { it.artistName == artist.name } - Log.d(this::class.simpleName, artist.id.toString()) - // Then add them to the artist, along with refreshing the amount of albums for (album in artistAlbums) { album.artist = artist