There is an extension functions
fun List<Track>.sortByTitle(): List<Track> {
return this.sortedBy { it.title }
}
fun List<Track>.sortByArtist(): List<Track> {
return this.sortedBy { it.artists[0].name }
}
What need to write in arguments of sort function in order to pass an extension function?
fun sortByTitle(owner: String, kind: String) {
sort(owner, kind) // pass List<Track>.sortByTitle
}
fun sortByArtist(owner: String, kind: String) {
sort(owner, kind) // pass List<Track>.sortByArtist
}
private fun sort(owner: String, kind: String) {
val remote = playlist.get(owner, kind)
val tracks = // call extension function: remote.tracks.sortByTitle()
// ...
}