diff --git a/app/src/main/java/com/kabouzeid/gramophone/comparator/AlbumAlphabeticComparator.java b/app/src/main/java/com/kabouzeid/gramophone/comparator/AlbumAlphabeticComparator.java index e5f4e6ef..882d4351 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/comparator/AlbumAlphabeticComparator.java +++ b/app/src/main/java/com/kabouzeid/gramophone/comparator/AlbumAlphabeticComparator.java @@ -7,7 +7,7 @@ import java.util.Comparator; /** * @author Karim Abou Zeid (kabouzeid) */ -class AlbumAlphabeticComparator implements Comparator { +public class AlbumAlphabeticComparator implements Comparator { @Override public int compare(Album lhs, Album rhs) { return lhs.title.trim().compareToIgnoreCase(rhs.title.trim()); diff --git a/app/src/main/java/com/kabouzeid/gramophone/comparator/PlaylistAlphabeticComparator.java b/app/src/main/java/com/kabouzeid/gramophone/comparator/PlaylistAlphabeticComparator.java new file mode 100644 index 00000000..38249fb9 --- /dev/null +++ b/app/src/main/java/com/kabouzeid/gramophone/comparator/PlaylistAlphabeticComparator.java @@ -0,0 +1,15 @@ +package com.kabouzeid.gramophone.comparator; + +import com.kabouzeid.gramophone.model.Playlist; + +import java.util.Comparator; + +/** + * @author Karim Abou Zeid (kabouzeid) + */ +public class PlaylistAlphabeticComparator implements Comparator { + @Override + public int compare(Playlist lhs, Playlist rhs) { + return lhs.name.trim().compareToIgnoreCase(rhs.name.trim()); + } +} 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 c187cce7..d7126451 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumLoader.java @@ -5,10 +5,12 @@ import android.database.Cursor; import android.provider.BaseColumns; import android.provider.MediaStore; +import com.kabouzeid.gramophone.comparator.AlbumAlphabeticComparator; import com.kabouzeid.gramophone.model.Album; import com.kabouzeid.gramophone.util.PreferenceUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -32,10 +34,10 @@ public class AlbumLoader { albums.add(album); } while (cursor.moveToNext()); } - if (cursor != null) { cursor.close(); } + Collections.sort(albums, new AlbumAlphabeticComparator()); return albums; } @@ -100,6 +102,7 @@ public class AlbumLoader { if (cursor != null) { cursor.close(); } + Collections.sort(albums, new AlbumAlphabeticComparator()); return albums; } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java index be50d7d8..d91cf961 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/AlbumSongLoader.java @@ -5,6 +5,7 @@ import android.database.Cursor; import android.provider.BaseColumns; import android.provider.MediaStore; +import com.kabouzeid.gramophone.comparator.SongAlphabeticComparator; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.PreferenceUtils; @@ -17,13 +18,11 @@ import java.util.Comparator; */ public class AlbumSongLoader { - public static ArrayList getAlbumSongList(final Context context, final int albumId, Comparator comparator) { - ArrayList songs = getAlbumSongList(context, albumId); - Collections.sort(songs, comparator); - return songs; + public static ArrayList getAlbumSongList(final Context context, final int albumId) { + return getAlbumSongList(context, albumId, null); } - public static ArrayList getAlbumSongList(final Context context, final int albumId) { + public static ArrayList getAlbumSongList(final Context context, final int albumId, Comparator comparator) { Cursor cursor = makeAlbumSongCursor(context, albumId); ArrayList songs = new ArrayList<>(); if (cursor != null && cursor.moveToFirst()) { @@ -40,10 +39,11 @@ public class AlbumSongLoader { songs.add(song); } while (cursor.moveToNext()); } - - if (cursor != null) { + if (cursor != null) cursor.close(); - } + if (comparator == null) + comparator = new SongAlphabeticComparator(); + Collections.sort(songs, comparator); return songs; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java index 7c729321..52e88c6c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistAlbumLoader.java @@ -5,16 +5,19 @@ import android.database.Cursor; import android.provider.BaseColumns; import android.provider.MediaStore; +import com.kabouzeid.gramophone.comparator.AlbumAlphabeticComparator; import com.kabouzeid.gramophone.model.Album; import com.kabouzeid.gramophone.util.PreferenceUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** * @author Karim Abou Zeid (kabouzeid) */ public class ArtistAlbumLoader { + public static List getArtistAlbumList(final Context context, final int artistId) { Cursor cursor = makeArtistAlbumCursor(context, artistId); List albums = new ArrayList<>(); @@ -30,10 +33,9 @@ public class ArtistAlbumLoader { albums.add(album); } while (cursor.moveToNext()); } - - if (cursor != null) { + if (cursor != null) cursor.close(); - } + Collections.sort(albums, new AlbumAlphabeticComparator()); return albums; } 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 29a2eb9e..d88985ba 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistLoader.java @@ -5,10 +5,12 @@ import android.database.Cursor; import android.provider.BaseColumns; import android.provider.MediaStore; +import com.kabouzeid.gramophone.comparator.ArtistAlphabeticComparator; import com.kabouzeid.gramophone.model.Artist; import com.kabouzeid.gramophone.util.PreferenceUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -30,10 +32,9 @@ public class ArtistLoader { artists.add(artist); } while (cursor.moveToNext()); } - - if (cursor != null) { + if (cursor != null) cursor.close(); - } + Collections.sort(artists, new ArtistAlphabeticComparator()); return artists; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java index f410c5e5..67f0f616 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/ArtistSongLoader.java @@ -5,10 +5,12 @@ import android.database.Cursor; import android.provider.BaseColumns; import android.provider.MediaStore; +import com.kabouzeid.gramophone.comparator.SongAlphabeticComparator; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.PreferenceUtils; import java.util.ArrayList; +import java.util.Collections; /** * @author Karim Abou Zeid (kabouzeid) @@ -32,10 +34,9 @@ public class ArtistSongLoader { songs.add(song); } while (cursor.moveToNext()); } - - if (cursor != null) { + if (cursor != null) cursor.close(); - } + Collections.sort(songs, new SongAlphabeticComparator()); return songs; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/PlaylistLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/PlaylistLoader.java index a7b8c9fd..1065e64b 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/PlaylistLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/PlaylistLoader.java @@ -6,12 +6,15 @@ import android.provider.BaseColumns; import android.provider.MediaStore; import android.provider.MediaStore.Audio.PlaylistsColumns; +import com.kabouzeid.gramophone.comparator.PlaylistAlphabeticComparator; import com.kabouzeid.gramophone.model.Playlist; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class PlaylistLoader { + public static Playlist getPlaylist(final Context context, final int playlistId) { Playlist playlist = new Playlist(); Cursor cursor = makePlaylistCursor(context, BaseColumns._ID + "=?", new String[]{String.valueOf(playlistId)}); @@ -21,9 +24,8 @@ public class PlaylistLoader { final String name = cursor.getString(1); playlist = new Playlist(id, name); } - if (cursor != null) { + if (cursor != null) cursor.close(); - } return playlist; } @@ -39,9 +41,9 @@ public class PlaylistLoader { playlists.add(playlist); } while (cursor.moveToNext()); } - if (cursor != null) { + if (cursor != null) cursor.close(); - } + Collections.sort(playlists, new PlaylistAlphabeticComparator()); return playlists; } diff --git a/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java b/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java index 9d48599a..13f1b1d1 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/loader/SongLoader.java @@ -5,10 +5,12 @@ import android.database.Cursor; import android.provider.BaseColumns; import android.provider.MediaStore; +import com.kabouzeid.gramophone.comparator.SongAlphabeticComparator; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.PreferenceUtils; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -35,10 +37,9 @@ public class SongLoader { songs.add(song); } while (cursor.moveToNext()); } - - if (cursor != null) { + if (cursor != null) cursor.close(); - } + Collections.sort(songs, new SongAlphabeticComparator()); return songs; } @@ -92,9 +93,9 @@ public class SongLoader { } while (cursor.moveToNext()); } - if (cursor != null) { + if (cursor != null) cursor.close(); - } + Collections.sort(songs, new SongAlphabeticComparator()); return songs; }