Fix track sorting bug

This commit is contained in:
Karim Abou Zeid 2018-04-30 00:08:23 +02:00
commit be54afd38b
2 changed files with 15 additions and 4 deletions

View file

@ -10,6 +10,8 @@ import com.kabouzeid.gramophone.model.Song;
import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.PreferenceUtil;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/** /**
* @author Karim Abou Zeid (kabouzeid) * @author Karim Abou Zeid (kabouzeid)
@ -45,7 +47,9 @@ public class AlbumLoader {
@NonNull @NonNull
public static Album getAlbum(@NonNull final Context context, int albumId) { public static Album getAlbum(@NonNull final Context context, int albumId) {
ArrayList<Song> songs = SongLoader.getSongs(SongLoader.makeSongCursor(context, AudioColumns.ALBUM_ID + "=?", new String[]{String.valueOf(albumId)}, getSongLoaderSortOrder(context))); ArrayList<Song> 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 @NonNull
@ -56,6 +60,9 @@ public class AlbumLoader {
getOrCreateAlbum(albums, song.albumId).songs.add(song); getOrCreateAlbum(albums, song.albumId).songs.add(song);
} }
} }
for (Album album : albums) {
sortSongsByTrackNumber(album);
}
return albums; return albums;
} }
@ -69,4 +76,8 @@ public class AlbumLoader {
albums.add(album); albums.add(album);
return album; return album;
} }
private static void sortSongsByTrackNumber(Album album) {
Collections.sort(album.songs, (o1, o2) -> o1.trackNumber - o2.trackNumber);
}
} }

View file

@ -70,8 +70,8 @@ public class ArtistLoader {
return artist; return artist;
} }
} }
Artist album = new Artist(); Artist artist = new Artist();
artists.add(album); artists.add(artist);
return album; return artist;
} }
} }