Fix duplicate search results

pull/996/head
Alex Baker 6 years ago
parent 8e0ff10ebb
commit 16829dec6c

@ -50,6 +50,23 @@ public class Field extends DBObject<Field> {
return UnaryCriterion.like(this, value);
}
public Criterion in(final Query query) {
final Field field = this;
return new Criterion(Operator.in) {
@Override
protected void populate(StringBuilder sb) {
sb.append(field)
.append(SPACE)
.append(Operator.in)
.append(SPACE)
.append(LEFT_PARENTHESIS)
.append(query)
.append(RIGHT_PARENTHESIS);
}
};
}
public <T> Criterion in(List<T> entries) {
final Field field = this;
return new Criterion(Operator.in) {

@ -3,7 +3,7 @@ package com.todoroo.astrid.api;
import android.os.Parcel;
import android.os.Parcelable;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Join;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.data.Task;
import org.tasks.data.Tag;
@ -37,14 +37,16 @@ public class SearchFilter extends Filter {
private static QueryTemplate getQueryTemplate(String query) {
return new QueryTemplate()
.join(Join.left(Tag.TABLE, Tag.TASK.eq(Task.ID)))
.where(
Criterion.and(
Task.DELETION_DATE.eq(0),
Criterion.or(
Task.NOTES.like("%" + query + "%"),
Task.TITLE.like("%" + query + "%"),
Tag.NAME.like("%" + query + "%"))));
Task.ID.in(
Query.select(Tag.TASK)
.from(Tag.TABLE)
.where(Tag.NAME.like("%" + query + "%"))))));
}
@Override

Loading…
Cancel
Save