You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/app/src/main/java/com/todoroo/astrid/api/SearchFilter.java

55 lines
1.5 KiB
Java

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.QueryTemplate;
import com.todoroo.astrid.data.Task;
import org.tasks.data.Tag;
public class SearchFilter extends Filter {
/** Parcelable Creator Object */
public static final Parcelable.Creator<SearchFilter> CREATOR =
new Parcelable.Creator<SearchFilter>() {
/** {@inheritDoc} */
@Override
public SearchFilter createFromParcel(Parcel source) {
SearchFilter item = new SearchFilter();
item.readFromParcel(source);
return item;
}
/** {@inheritDoc} */
@Override
public SearchFilter[] newArray(int size) {
return new SearchFilter[size];
}
};
private SearchFilter() {}
public SearchFilter(String title, String query) {
super(title, getQueryTemplate(query));
}
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 + "%"))));
}
@Override
public boolean supportsHiddenTasks() {
return false;
}
}