From be54afd38b2cda9fd4094c9d474743258efea347 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Mon, 30 Apr 2018 00:08:23 +0200 Subject: [PATCH] Fix track sorting bug --- .../kabouzeid/gramophone/loader/AlbumLoader.java | 13 ++++++++++++- .../kabouzeid/gramophone/loader/ArtistLoader.java | 6 +++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java index 89657a62..69669c99 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java @@ -10,6 +10,8 @@ import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.PreferenceUtil; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; /** * @author Karim Abou Zeid (kabouzeid) @@ -45,7 +47,9 @@ public class AlbumLoader { @NonNull public static Album getAlbum(@NonNull final Context context, int albumId) { ArrayList songs = SongLoader.getSongs(SongLoader.makeSongCursor(context, AudioColumns.ALBUM_ID + "=?", new String[]{String.valueOf(albumId)}, getSongLoaderSortOrder(context))); - return new Album(songs); + Album album = new Album(songs); + sortSongsByTrackNumber(album); + return album; } @NonNull @@ -56,6 +60,9 @@ public class AlbumLoader { getOrCreateAlbum(albums, song.albumId).songs.add(song); } } + for (Album album : albums) { + sortSongsByTrackNumber(album); + } return albums; } @@ -69,4 +76,8 @@ public class AlbumLoader { albums.add(album); return album; } + + private static void sortSongsByTrackNumber(Album album) { + Collections.sort(album.songs, (o1, o2) -> o1.trackNumber - o2.trackNumber); + } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java index 566c64f7..6c3ea062 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java @@ -70,8 +70,8 @@ public class ArtistLoader { return artist; } } - Artist album = new Artist(); - artists.add(album); - return album; + Artist artist = new Artist(); + artists.add(artist); + return artist; } }