diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 67e26674f..0c4249494 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -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); diff --git a/app/src/main/java/com/todoroo/astrid/api/Filter.java b/app/src/main/java/com/todoroo/astrid/api/Filter.java index ae84f8282..12b2dcb16 100644 --- a/app/src/main/java/com/todoroo/astrid/api/Filter.java +++ b/app/src/main/java/com/todoroo/astrid/api/Filter.java @@ -185,7 +185,7 @@ public class Filter extends FilterListItem { return false; } - public boolean supportsSubtasks() { + public boolean supportsHiddenTasks() { return true; } diff --git a/app/src/main/java/com/todoroo/astrid/api/SearchFilter.java b/app/src/main/java/com/todoroo/astrid/api/SearchFilter.java index 8f2c99c9b..97b530642 100644 --- a/app/src/main/java/com/todoroo/astrid/api/SearchFilter.java +++ b/app/src/main/java/com/todoroo/astrid/api/SearchFilter.java @@ -46,4 +46,9 @@ public class SearchFilter extends Filter { Task.TITLE.like("%" + query + "%"), Tag.NAME.like("%" + query + "%")))); } + + @Override + public boolean supportsHiddenTasks() { + return false; + } } diff --git a/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java b/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java index 1f17dfce5..d949dd005 100644 --- a/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java +++ b/app/src/main/java/com/todoroo/astrid/core/BuiltInFilterExposer.java @@ -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) { diff --git a/app/src/main/java/org/tasks/filters/NoSubtasksFilter.java b/app/src/main/java/org/tasks/filters/NoSubtasksFilter.java deleted file mode 100644 index 2c9e25c31..000000000 --- a/app/src/main/java/org/tasks/filters/NoSubtasksFilter.java +++ /dev/null @@ -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 CREATOR = - new Parcelable.Creator() { - - /** {@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; - } -} diff --git a/app/src/main/java/org/tasks/filters/RecentlyModifiedFilter.java b/app/src/main/java/org/tasks/filters/RecentlyModifiedFilter.java new file mode 100644 index 000000000..6d48071cf --- /dev/null +++ b/app/src/main/java/org/tasks/filters/RecentlyModifiedFilter.java @@ -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 CREATOR = + new Parcelable.Creator() { + + /** {@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; + } +} diff --git a/app/src/main/java/org/tasks/ui/TaskListViewModel.java b/app/src/main/java/org/tasks/ui/TaskListViewModel.java index d85465e06..21c22f220 100644 --- a/app/src/main/java/org/tasks/ui/TaskListViewModel.java +++ b/app/src/main/java/org/tasks/ui/TaskListViewModel.java @@ -103,9 +103,7 @@ public class TaskListViewModel extends ViewModel { public static List getQuery(Preferences preferences, Filter filter, boolean subtasks) { List 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) diff --git a/gradle.properties b/gradle.properties index d17b1d64b..43523e7d5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ android.enableJetifier=true android.useAndroidX=true -org.gradle.jvmargs=-Xmx4096M +org.gradle.jvmargs=-Xmx2048m