Force sort order on recently modified filter

gtask_related_email
Alex Baker 6 years ago
parent 7fd2936965
commit 2f37c76d93

@ -321,7 +321,12 @@ public final class TaskListFragment extends InjectingFragment
hidden.setChecked(preferences.getBoolean(R.string.p_show_hidden_tasks, false));
completed.setChecked(preferences.getBoolean(R.string.p_show_completed_tasks, false));
}
if (taskAdapter.supportsManualSorting()) {
MenuItem sortMenu = menu.findItem(R.id.menu_sort);
if (!filter.supportsSorting()) {
sortMenu.setEnabled(false);
sortMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
}
if (!filter.supportSubtasks() || taskAdapter.supportsManualSorting()) {
menu.findItem(R.id.menu_collapse_subtasks).setVisible(false);
menu.findItem(R.id.menu_expand_subtasks).setVisible(false);
}

@ -189,6 +189,14 @@ public class Filter extends FilterListItem {
return true;
}
public boolean supportSubtasks() {
return true;
}
public boolean supportsSorting() {
return true;
}
public boolean hasMenu() {
return getMenu() != 0;
}

@ -3,8 +3,10 @@ package org.tasks.filters;
import android.os.Parcel;
import android.os.Parcelable;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Order;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.data.Task;
import org.tasks.time.DateTime;
@ -40,11 +42,22 @@ public class RecentlyModifiedFilter extends Filter {
Criterion.and(
Task.DELETION_DATE.lte(0),
Task.MODIFICATION_DATE.gt(
new DateTime().minusDays(1).startOfMinute().getMillis())));
new DateTime().minusDays(1).startOfMinute().getMillis())))
.orderBy(Order.desc(Task.MODIFICATION_DATE));
}
@Override
public boolean supportsHiddenTasks() {
return false;
}
@Override
public boolean supportSubtasks() {
return false;
}
@Override
public boolean supportsSorting() {
return false;
}
}

@ -107,7 +107,8 @@ public class TaskListViewModel extends ViewModel {
boolean includeCaldavSubtasks) {
List<Field> fields = newArrayList(TASKS, GTASK, CALDAV, GEOFENCE, PLACE);
if ((includeGoogleTaskSubtasks || includeCaldavSubtasks)
if (filter.supportSubtasks()
&& (includeGoogleTaskSubtasks || includeCaldavSubtasks)
&& !(preferences.isManualSort() && filter.supportsManualSort())) {
String tagQuery =
Query.select(field("group_concat(distinct(tag_uid))"))
@ -242,7 +243,8 @@ public class TaskListViewModel extends ViewModel {
+ filter.getSqlQuery();
String query =
SortHelper.adjustQueryForFlagsAndSort(preferences, joinedQuery, preferences.getSortMode());
SortHelper.adjustQueryForFlagsAndSort(
preferences, joinedQuery, preferences.getSortMode());
String groupedQuery =
query.contains("ORDER BY")

Loading…
Cancel
Save