mirror of
https://github.com/cmclark00/RetroMusicPlayer.git
synced 2025-05-19 08:35:20 +01:00
Added Artist song sort order in Artist details fragment
This commit is contained in:
parent
cd933b56dc
commit
7a2d14e061
7 changed files with 139 additions and 16 deletions
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue