forked from clementine-player/Android-Remote
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLibraryQuery.java
More file actions
88 lines (71 loc) · 2.75 KB
/
LibraryQuery.java
File metadata and controls
88 lines (71 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package de.qspool.clementineremote.backend.library;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteDatabase;
import android.preference.PreferenceManager;
import de.qspool.clementineremote.SharedPreferencesKeys;
import de.qspool.clementineremote.backend.database.DynamicSongQuery;
public class LibraryQuery extends DynamicSongQuery {
public LibraryQuery(Context context) {
super(context);
}
@Override
protected String[] getSelectedFields() {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(mContext);
String grouping = sharedPreferences.getString(SharedPreferencesKeys.SP_LIBRARY_GROUPING,
"artist-album");
String[] selectedFields = new String[] {"artist", "title"};
switch (grouping) {
case "artist":
selectedFields = new String[] {"artist", "title"};
break;
case "artist-album":
selectedFields = new String[] {"artist", "album", "title"};
break;
case "albumartist-album":
selectedFields = new String[] {"albumartist", "album", "title"};
break;
case "artist-year":
selectedFields = new String[] {"artist", "year", "title"};
break;
case "album":
selectedFields = new String[] {"album", "title"};
break;
case "genre-album":
selectedFields = new String[] {"genre", "album", "title"};
break;
case "genre-artist-album":
selectedFields = new String[] {"genre", "artist", "album", "title"};
break;
}
return selectedFields;
}
@Override
protected String getSorting() {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(mContext);
return sharedPreferences.getString(SharedPreferencesKeys.SP_LIBRARY_SORTING, "ASC");
}
@Override
protected String getTable() {
return LibraryDatabaseHelper.SONGS;
}
@Override
public SQLiteDatabase getReadableDatabase() {
return new LibraryDatabaseHelper().openDatabase(SQLiteDatabase.OPEN_READONLY);
}
@Override
public String getMatchesSubQuery(String match) {
StringBuilder sb = new StringBuilder();
sb.append("(SELECT * FROM ");
sb.append(LibraryDatabaseHelper.SONGS_FTS);
sb.append(" WHERE ");
sb.append(LibraryDatabaseHelper.SONGS_FTS);
sb.append(" MATCH \"");
sb.append(match);
sb.append("*");
sb.append("\" ) ");
return sb.toString();
}
}