Added Artist song sort order in Artist details fragment

This commit is contained in:
Prathamesh More 2021-12-31 15:18:50 +05:30
parent cd933b56dc
commit 7a2d14e061
7 changed files with 139 additions and 16 deletions

View file

@ -14,7 +14,9 @@
package code.name.monkey.retromusic.model
import code.name.monkey.retromusic.helper.SortOrder
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.PreferenceUtil
data class Artist(
val id: Long,
@ -29,7 +31,7 @@ data class Artist(
name = artistName
}
var name: String = ""
var name: String = "-"
get() {
val name = if (isAlbumArtist) getAlbumArtistName()
else getArtistName()
@ -57,6 +59,39 @@ data class Artist(
val songs: List<Song>
get() = albums.flatMap { it.songs }
val sortedSongs: List<Song>
get() = songs.sortedWith(
when (PreferenceUtil.artistDetailSongSortOrder) {
SortOrder.ArtistSongSortOrder.SONG_A_Z -> { o1, o2 ->
o1.title.compareTo(
o2.title
)
}
SortOrder.ArtistSongSortOrder.SONG_Z_A -> { o1, o2 ->
o2.title.compareTo(
o1.title
)
}
SortOrder.ArtistSongSortOrder.SONG_ALBUM -> { o1, o2 ->
o1.albumName.compareTo(
o2.albumName
)
}
SortOrder.ArtistSongSortOrder.SONG_YEAR -> { o1, o2 ->
o2.year.compareTo(
o1.year
)
}
SortOrder.ArtistSongSortOrder.SONG_DURATION -> { o1, o2 ->
o1.duration.compareTo(
o2.duration
)
}
else -> {
throw IllegalArgumentException("invalid ${PreferenceUtil.artistDetailSongSortOrder}")
}
})
fun safeGetFirstAlbum(): Album {
return albums.firstOrNull() ?: Album.empty
}