sorted method

List<UTrackRecord> sorted(
  1. List<UTrackRecord> input,
  2. ULibrarySort sort, {
  3. bool descending = false,
})

Implementation

List<UTrackRecord> sorted(List<UTrackRecord> input, ULibrarySort sort, {bool descending = false}) {
  final List<UTrackRecord> copy = List<UTrackRecord>.of(input);
  copy.sort((UTrackRecord a, UTrackRecord b) {
    switch (sort) {
      case ULibrarySort.title:
        return a.title.compareTo(b.title);
      case ULibrarySort.artist:
        return a.artist.compareTo(b.artist);
      case ULibrarySort.album:
        return a.album.compareTo(b.album);
      case ULibrarySort.dateAdded:
        return a.addedAt.compareTo(b.addedAt);
      case ULibrarySort.duration:
        return a.durationMs.compareTo(b.durationMs);
      case ULibrarySort.year:
        return (a.year ?? 0).compareTo(b.year ?? 0);
    }
  });
  return descending ? copy.reversed.toList(growable: false) : copy;
}