package de.qspool.clementineremote.backend.globalsearch; import android.content.Context; import android.content.SharedPreferences; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.preference.PreferenceManager; import de.qspool.clementineremote.SharedPreferencesKeys; import de.qspool.clementineremote.backend.database.DynamicSongQuery; import de.qspool.clementineremote.backend.database.SongSelectItem; public class GlobalSearchQuery extends DynamicSongQuery { public int mQueryId; public GlobalSearchQuery(Context context, int queryId) { super(context); mQueryId = queryId; } @Override protected String[] getSelectedFields() { SharedPreferences sharedPreferences = PreferenceManager .getDefaultSharedPreferences(mContext); String grouping = sharedPreferences.getString(SharedPreferencesKeys.SP_LIBRARY_GROUPING, "artist-album"); String[] selectedFields = new String[]{"search_provider", "artist", "title"}; switch (grouping) { case "artist": selectedFields = new String[]{"search_provider", "artist", "title"}; break; case "artist-album": selectedFields = new String[]{"search_provider", "artist", "album", "title"}; break; case "artist-year": selectedFields = new String[]{"search_provider", "artist", "year", "title"}; break; case "album": selectedFields = new String[]{"search_provider", "album", "title"}; break; case "genre-album": selectedFields = new String[]{"search_provider", "genre", "album", "title"}; break; case "genre-artist-album": selectedFields = new String[]{"search_provider", "genre", "artist", "album", "title"}; break; } return selectedFields; } @Override protected String getHiddenWhere() { return " global_search_id = " + mQueryId; } @Override protected String getSorting() { SharedPreferences sharedPreferences = PreferenceManager .getDefaultSharedPreferences(mContext); return sharedPreferences.getString(SharedPreferencesKeys.SP_LIBRARY_SORTING, "ASC"); } @Override protected String getTable() { return GlobalSearchDatabaseHelper.TABLE_NAME; } @Override public SQLiteDatabase getReadableDatabase() { return new GlobalSearchDatabaseHelper(mContext).getReadableDatabase(); } @Override public String getMatchesSubQuery(String match) { return ""; } @Override public SongSelectItem fillSongSelectItem(Cursor c) { SongSelectItem item = super.fillSongSelectItem(c); if (item.getLevel() == 0) { Bitmap bitmap = GlobalSearchManager.getInstance().getGlobalSearchProviderIconStore() .getProviderIcon(item.getListTitle()); item.setIcon(bitmap); } return item; } }