diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFragmentHelper.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListFragmentHelper.java similarity index 96% rename from astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFragmentHelper.java rename to astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListFragmentHelper.java index 516395f66..e66fc03eb 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksFragmentHelper.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListFragmentHelper.java @@ -36,21 +36,22 @@ import com.todoroo.astrid.subtasks.OrderedListUpdater.Node; import com.todoroo.astrid.subtasks.OrderedListUpdater.OrderedListNodeVisitor; import com.todoroo.astrid.ui.DraggableListView; -public class SubtasksFragmentHelper { +public class OrderedListFragmentHelper { private final DisplayMetrics metrics = new DisplayMetrics(); - private final SubtasksUpdater updater = new SubtasksUpdater(); + private final OrderedListUpdater updater; private final TaskListFragment fragment; @Autowired TaskService taskService; private DraggableTaskAdapter taskAdapter; - private String list; + private LIST list; - public SubtasksFragmentHelper(TaskListFragment fragment) { + public OrderedListFragmentHelper(TaskListFragment fragment, OrderedListUpdater updater) { DependencyInjectionService.getInstance().inject(this); this.fragment = fragment; + this.updater = updater; } // --- ui component setup @@ -83,8 +84,7 @@ public class SubtasksFragmentHelper { } public void beforeSetUpTaskList(Filter filter) { - updater.applySubtasksToFilter(filter, list); - updater.sanitizeTaskList(filter, list); + updater.initialize(list, filter); } public Property[] taskProperties() { @@ -259,7 +259,7 @@ public class SubtasksFragmentHelper { } } - public void setList(String list) { + public void setList(LIST list) { this.list = list; } diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java index 51d6bc2a1..cd02525e2 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedListUpdater.java @@ -25,7 +25,7 @@ abstract public class OrderedListUpdater { public void processTask(long taskId, Metadata metadata); } - // --- abstract + // --- abstract and empty abstract protected Metadata getTaskMetadata(LIST list, long taskId); @@ -39,7 +39,17 @@ abstract public class OrderedListUpdater { abstract protected Metadata createEmptyMetadata(LIST list, long taskId); - /** @param list */ + /** + * @param list + * @param filter + */ + protected void initialize(LIST list, Filter filter) { + // + } + + /** + * @param list + */ protected void beforeIndent(LIST list) { // } diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java index 44835d741..32d587540 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksListFragment.java @@ -18,11 +18,11 @@ import com.todoroo.astrid.data.Task; */ public class SubtasksListFragment extends TaskListFragment { - private final SubtasksFragmentHelper helper; + private final OrderedListFragmentHelper helper; public SubtasksListFragment() { super(); - helper = new SubtasksFragmentHelper(this); + helper = new OrderedListFragmentHelper(this, new SubtasksUpdater()); helper.setList(SubtasksMetadata.LIST_ACTIVE_TASKS); } diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java index b48b47cb8..5081ce67f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java @@ -12,11 +12,11 @@ import com.todoroo.astrid.data.Task; public class SubtasksTagListFragment extends TagViewFragment { - private final SubtasksFragmentHelper helper; + private final OrderedListFragmentHelper helper; public SubtasksTagListFragment() { super(); - helper = new SubtasksFragmentHelper(this); + helper = new OrderedListFragmentHelper(this, new SubtasksUpdater()); } @Override diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksUpdater.java index dbb3eaaf0..1934f8e05 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksUpdater.java @@ -38,6 +38,12 @@ public class SubtasksUpdater extends OrderedListUpdater { return null; } + @Override + protected void initialize(String list, Filter filter) { + applySubtasksToFilter(filter, list); + sanitizeTaskList(filter, list); + } + @Override protected Metadata getTaskMetadata(String list, long taskId) { TodorooCursor cursor = metadataService.query(Query.select(Metadata.PROPERTIES).where(