Update recently modified filter

* Show all edits in past 24 hours
* Allow sorting and subtasks
* Disable hidden/completed toggles
gtask_related_email
Alex Baker 5 years ago
parent 48a1ba686c
commit ca14ae65f1

@ -304,7 +304,7 @@ public final class TaskListFragment extends InjectingFragment
}
MenuItem hidden = menu.findItem(R.id.menu_show_hidden);
MenuItem completed = menu.findItem(R.id.menu_show_completed);
if (!taskAdapter.supportsHiddenTasks() || filter instanceof SearchFilter) {
if (!taskAdapter.supportsHiddenTasks() || !filter.supportsHiddenTasks()) {
completed.setChecked(true);
completed.setEnabled(false);
hidden.setChecked(true);

@ -185,7 +185,7 @@ public class Filter extends FilterListItem {
return false;
}
public boolean supportsSubtasks() {
public boolean supportsHiddenTasks() {
return true;
}

@ -46,4 +46,9 @@ public class SearchFilter extends Filter {
Task.TITLE.like("%" + query + "%"),
Tag.NAME.like("%" + query + "%"))));
}
@Override
public boolean supportsHiddenTasks() {
return false;
}
}

@ -10,7 +10,6 @@ import android.content.Context;
import android.content.res.Resources;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Field;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities;
@ -25,7 +24,7 @@ import java.util.Map;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.Tag;
import org.tasks.filters.NoSubtasksFilter;
import org.tasks.filters.RecentlyModifiedFilter;
import org.tasks.filters.SortableFilter;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
@ -70,12 +69,7 @@ public final class BuiltInFilterExposer {
}
public static Filter getRecentlyModifiedFilter(Resources r) {
return new NoSubtasksFilter(
r.getString(R.string.BFE_Recent),
new QueryTemplate()
.where(TaskCriteria.notDeleted())
.orderBy(Order.desc(Task.MODIFICATION_DATE))
.limit(15));
return new RecentlyModifiedFilter(r.getString(R.string.BFE_Recent));
}
public static Filter getUncategorizedFilter(Resources r) {

@ -1,38 +0,0 @@
package org.tasks.filters;
import android.os.Parcel;
import android.os.Parcelable;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.api.Filter;
public class NoSubtasksFilter extends Filter {
public static final Parcelable.Creator<NoSubtasksFilter> CREATOR =
new Parcelable.Creator<NoSubtasksFilter>() {
/** {@inheritDoc} */
@Override
public NoSubtasksFilter createFromParcel(Parcel source) {
NoSubtasksFilter item = new NoSubtasksFilter();
item.readFromParcel(source);
return item;
}
/** {@inheritDoc} */
@Override
public NoSubtasksFilter[] newArray(int size) {
return new NoSubtasksFilter[size];
}
};
public NoSubtasksFilter(String listingTitle, QueryTemplate sqlQuery) {
super(listingTitle, sqlQuery);
}
private NoSubtasksFilter() {}
@Override
public boolean supportsSubtasks() {
return false;
}
}

@ -0,0 +1,51 @@
package org.tasks.filters;
import android.os.Parcel;
import android.os.Parcelable;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Task;
import org.tasks.time.DateTime;
public class RecentlyModifiedFilter extends Filter {
public static final Parcelable.Creator<RecentlyModifiedFilter> CREATOR =
new Parcelable.Creator<RecentlyModifiedFilter>() {
/** {@inheritDoc} */
@Override
public RecentlyModifiedFilter createFromParcel(Parcel source) {
RecentlyModifiedFilter item = new RecentlyModifiedFilter();
item.readFromParcel(source);
return item;
}
/** {@inheritDoc} */
@Override
public RecentlyModifiedFilter[] newArray(int size) {
return new RecentlyModifiedFilter[size];
}
};
public RecentlyModifiedFilter(String listingTitle) {
super(listingTitle, getQueryTemplate());
}
private RecentlyModifiedFilter() {}
private static QueryTemplate getQueryTemplate() {
return new QueryTemplate()
.where(
Criterion.and(
TaskCriteria.notDeleted(),
Task.MODIFICATION_DATE.gt(
new DateTime().minusDays(1).startOfMinute().getMillis())));
}
@Override
public boolean supportsHiddenTasks() {
return false;
}
}

@ -103,9 +103,7 @@ public class TaskListViewModel extends ViewModel {
public static List<String> getQuery(Preferences preferences, Filter filter, boolean subtasks) {
List<Field> fields = newArrayList(TASKS, GTASK, CALDAV, GEOFENCE, PLACE);
if (subtasks
&& filter.supportsSubtasks()
&& !(preferences.isManualSort() && filter.supportsManualSort())) {
if (subtasks && !(preferences.isManualSort() && filter.supportsManualSort())) {
String tagQuery =
Query.select(field("group_concat(distinct(tag_uid))"))
.from(Tag.TABLE)

@ -1,3 +1,3 @@
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx4096M
org.gradle.jvmargs=-Xmx2048m

Loading…
Cancel
Save