Fix SQL error for empty genres
This commit is contained in:
parent
b468897b89
commit
1b8427cacc
1 changed files with 12 additions and 7 deletions
|
|
@ -30,7 +30,17 @@ public class GenreLoader {
|
||||||
if (cursor != null) {
|
if (cursor != null) {
|
||||||
if (cursor.moveToFirst()) {
|
if (cursor.moveToFirst()) {
|
||||||
do {
|
do {
|
||||||
genres.add(getGenreFromCursor(context, cursor));
|
Genre genre = getGenreFromCursor(context, cursor);
|
||||||
|
if (genre.songCount > 0) {
|
||||||
|
genres.add(genre);
|
||||||
|
} else {
|
||||||
|
// try to remove the empty genre from the media store
|
||||||
|
try {
|
||||||
|
context.getContentResolver().delete(Genres.EXTERNAL_CONTENT_URI, Genres._ID + " == " + genre.id, null);
|
||||||
|
} catch (IllegalArgumentException | UnsupportedOperationException ignored) {
|
||||||
|
// nothing we can do then
|
||||||
|
}
|
||||||
|
}
|
||||||
} while (cursor.moveToNext());
|
} while (cursor.moveToNext());
|
||||||
}
|
}
|
||||||
cursor.close();
|
cursor.close();
|
||||||
|
|
@ -64,15 +74,10 @@ public class GenreLoader {
|
||||||
Genres.NAME
|
Genres.NAME
|
||||||
};
|
};
|
||||||
|
|
||||||
// Genres that actually have songs
|
|
||||||
final String selection = Genres._ID + " IN" +
|
|
||||||
" (SELECT " + Genres.Members.GENRE_ID + " FROM audio_genres_map WHERE " + Genres.Members.AUDIO_ID + " IN" +
|
|
||||||
" (SELECT " + Genres._ID + " FROM audio_meta WHERE " + SongLoader.BASE_SELECTION + "))";
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return context.getContentResolver().query(
|
return context.getContentResolver().query(
|
||||||
Genres.EXTERNAL_CONTENT_URI,
|
Genres.EXTERNAL_CONTENT_URI,
|
||||||
projection, selection, null, PreferenceUtil.getInstance(context).getGenreSortOrder());
|
projection, null, null, PreferenceUtil.getInstance(context).getGenreSortOrder());
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue