diff --git a/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java b/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java index 675b73505..4edb84d30 100644 --- a/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java +++ b/src/androidTest/java/com/todoroo/astrid/subtasks/SubtasksTestCase.java @@ -28,7 +28,7 @@ public class SubtasksTestCase extends DatabaseTestCase { @Inject TaskDao taskDao; @Inject Preferences preferences; - protected SubtasksUpdater updater; + protected SubtasksFilterUpdater updater; protected Filter filter; /* Starting State: @@ -46,7 +46,7 @@ public class SubtasksTestCase extends DatabaseTestCase { public void setUp() { super.setUp(); filter = BuiltInFilterExposer.getMyTasksFilter(getTargetContext().getResources()); - preferences.clear(SubtasksUpdater.ACTIVE_TASKS_ORDER); + preferences.clear(SubtasksFilterUpdater.ACTIVE_TASKS_ORDER); updater = new SubtasksFilterUpdater(taskListMetadataDao, taskDao); } diff --git a/src/main/java/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java b/src/main/java/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java index 20c5edd1e..a3884c43c 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java +++ b/src/main/java/com/todoroo/astrid/subtasks/SubtasksFilterUpdater.java @@ -2,14 +2,20 @@ package com.todoroo.astrid.subtasks; import android.text.TextUtils; +import com.todoroo.andlib.sql.Criterion; +import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskListMetadataDao; import com.todoroo.astrid.data.SyncFlags; +import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.TaskListMetadata; import javax.inject.Inject; -public class SubtasksFilterUpdater extends SubtasksUpdater { +public class SubtasksFilterUpdater extends AstridOrderedListUpdater { + + public static final String ACTIVE_TASKS_ORDER = "active_tasks_order"; //$NON-NLS-1$ + public static final String TODAY_TASKS_ORDER = "today_tasks_order"; //$NON-NLS-1$ private final TaskListMetadataDao taskListMetadataDao; @@ -44,4 +50,23 @@ public class SubtasksFilterUpdater extends SubtasksUpdater { taskListMetadataDao.saveExisting(list); } } + + @Override + public void initialize(TaskListMetadata list, Filter filter) { + super.initialize(list, filter); + applyToFilter(filter); + } + + @Override + protected void applyToFilter(Filter filter) { + String query = filter.getSqlQuery(); + + query = query.replaceAll("ORDER BY .*", ""); + query = query + String.format(" ORDER BY %s, %s, %s", + Task.DELETION_DATE, getOrderString(), Task.CREATION_DATE); + query = query.replace(TaskDao.TaskCriteria.isVisible().toString(), + Criterion.all.toString()); + + filter.setFilterQueryOverride(query); + } } diff --git a/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java b/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java index 1d88ef599..a083320b7 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java +++ b/src/main/java/com/todoroo/astrid/subtasks/SubtasksListFragment.java @@ -98,10 +98,10 @@ public class SubtasksListFragment extends TaskListFragment { String prefId = null; if (BuiltInFilterExposer.isInbox(context, filter)) { filterId = TaskListMetadata.FILTER_ID_ALL; - prefId = SubtasksUpdater.ACTIVE_TASKS_ORDER; + prefId = SubtasksFilterUpdater.ACTIVE_TASKS_ORDER; } else if (BuiltInFilterExposer.isTodayFilter(context, filter)) { filterId = TaskListMetadata.FILTER_ID_TODAY; - prefId = SubtasksUpdater.TODAY_TASKS_ORDER; + prefId = SubtasksFilterUpdater.TODAY_TASKS_ORDER; } if (TextUtils.isEmpty(filterId)) { return null; diff --git a/src/main/java/com/todoroo/astrid/subtasks/SubtasksUpdater.java b/src/main/java/com/todoroo/astrid/subtasks/SubtasksUpdater.java deleted file mode 100644 index cd86b919c..000000000 --- a/src/main/java/com/todoroo/astrid/subtasks/SubtasksUpdater.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.subtasks; - -import com.todoroo.andlib.sql.Criterion; -import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.dao.TaskDao; -import com.todoroo.astrid.dao.TaskDao.TaskCriteria; -import com.todoroo.astrid.data.Task; -import com.todoroo.astrid.data.TaskListMetadata; - -public abstract class SubtasksUpdater extends AstridOrderedListUpdater { - - public static final String ACTIVE_TASKS_ORDER = "active_tasks_order"; //$NON-NLS-1$ - public static final String TODAY_TASKS_ORDER = "today_tasks_order"; //$NON-NLS-1$ - - SubtasksUpdater(TaskDao taskDao) { - super(taskDao); - } - - @Override - public void initialize(TaskListMetadata list, Filter filter) { - super.initialize(list, filter); - applyToFilter(filter); - } - - @Override - protected void applyToFilter(Filter filter) { - String query = filter.getSqlQuery(); - - query = query.replaceAll("ORDER BY .*", ""); - query = query + String.format(" ORDER BY %s, %s, %s", - Task.DELETION_DATE, getOrderString(), Task.CREATION_DATE); - query = query.replace(TaskCriteria.isVisible().toString(), - Criterion.all.toString()); - - filter.setFilterQueryOverride(query); - } - -} - -