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 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<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
@ -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);
}
}

View file

@ -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;
}
}