When querying based on category, use join table.
This commit is contained in:
parent
3e3fdd5c07
commit
b2d5bcc94a
@ -740,20 +740,8 @@ public class AppProvider extends FDroidProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private AppQuerySelection queryCategory(String category) {
|
private AppQuerySelection queryCategory(String category) {
|
||||||
// TODO: In the future, add a new table for categories,
|
final String selection = CategoryTable.NAME + "." + CategoryTable.Cols.NAME + " = ? ";
|
||||||
// so we can join onto it.
|
final String[] args = {category};
|
||||||
final String app = getTableName();
|
|
||||||
final String selection =
|
|
||||||
app + "." + Cols.CATEGORIES + " = ? OR " + // Only category e.g. "internet"
|
|
||||||
app + "." + Cols.CATEGORIES + " LIKE ? OR " + // First category e.g. "internet,%"
|
|
||||||
app + "." + Cols.CATEGORIES + " LIKE ? OR " + // Last category e.g. "%,internet"
|
|
||||||
app + "." + Cols.CATEGORIES + " LIKE ? "; // One of many categories e.g. "%,internet,%"
|
|
||||||
final String[] args = {
|
|
||||||
category,
|
|
||||||
category + ",%",
|
|
||||||
"%," + category,
|
|
||||||
"%," + category + ",%",
|
|
||||||
};
|
|
||||||
return new AppQuerySelection(selection, args);
|
return new AppQuerySelection(selection, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user