Generify ordered list fragment helper for use with gtasks

pull/14/head
Tim Su 14 years ago
parent c9559ebfb4
commit 5042e17b1f

@ -36,21 +36,22 @@ import com.todoroo.astrid.subtasks.OrderedListUpdater.Node;
import com.todoroo.astrid.subtasks.OrderedListUpdater.OrderedListNodeVisitor; import com.todoroo.astrid.subtasks.OrderedListUpdater.OrderedListNodeVisitor;
import com.todoroo.astrid.ui.DraggableListView; import com.todoroo.astrid.ui.DraggableListView;
public class SubtasksFragmentHelper { public class OrderedListFragmentHelper<LIST> {
private final DisplayMetrics metrics = new DisplayMetrics(); private final DisplayMetrics metrics = new DisplayMetrics();
private final SubtasksUpdater updater = new SubtasksUpdater(); private final OrderedListUpdater<LIST> updater;
private final TaskListFragment fragment; private final TaskListFragment fragment;
@Autowired TaskService taskService; @Autowired TaskService taskService;
private DraggableTaskAdapter taskAdapter; private DraggableTaskAdapter taskAdapter;
private String list; private LIST list;
public SubtasksFragmentHelper(TaskListFragment fragment) { public OrderedListFragmentHelper(TaskListFragment fragment, OrderedListUpdater<LIST> updater) {
DependencyInjectionService.getInstance().inject(this); DependencyInjectionService.getInstance().inject(this);
this.fragment = fragment; this.fragment = fragment;
this.updater = updater;
} }
// --- ui component setup // --- ui component setup
@ -83,8 +84,7 @@ public class SubtasksFragmentHelper {
} }
public void beforeSetUpTaskList(Filter filter) { public void beforeSetUpTaskList(Filter filter) {
updater.applySubtasksToFilter(filter, list); updater.initialize(list, filter);
updater.sanitizeTaskList(filter, list);
} }
public Property<?>[] taskProperties() { public Property<?>[] taskProperties() {
@ -259,7 +259,7 @@ public class SubtasksFragmentHelper {
} }
} }
public void setList(String list) { public void setList(LIST list) {
this.list = list; this.list = list;
} }

@ -25,7 +25,7 @@ abstract public class OrderedListUpdater<LIST> {
public void processTask(long taskId, Metadata metadata); public void processTask(long taskId, Metadata metadata);
} }
// --- abstract // --- abstract and empty
abstract protected Metadata getTaskMetadata(LIST list, long taskId); abstract protected Metadata getTaskMetadata(LIST list, long taskId);
@ -39,7 +39,17 @@ abstract public class OrderedListUpdater<LIST> {
abstract protected Metadata createEmptyMetadata(LIST list, long taskId); 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) { protected void beforeIndent(LIST list) {
// //
} }

@ -18,11 +18,11 @@ import com.todoroo.astrid.data.Task;
*/ */
public class SubtasksListFragment extends TaskListFragment { public class SubtasksListFragment extends TaskListFragment {
private final SubtasksFragmentHelper helper; private final OrderedListFragmentHelper<String> helper;
public SubtasksListFragment() { public SubtasksListFragment() {
super(); super();
helper = new SubtasksFragmentHelper(this); helper = new OrderedListFragmentHelper<String>(this, new SubtasksUpdater());
helper.setList(SubtasksMetadata.LIST_ACTIVE_TASKS); helper.setList(SubtasksMetadata.LIST_ACTIVE_TASKS);
} }

@ -12,11 +12,11 @@ import com.todoroo.astrid.data.Task;
public class SubtasksTagListFragment extends TagViewFragment { public class SubtasksTagListFragment extends TagViewFragment {
private final SubtasksFragmentHelper helper; private final OrderedListFragmentHelper<String> helper;
public SubtasksTagListFragment() { public SubtasksTagListFragment() {
super(); super();
helper = new SubtasksFragmentHelper(this); helper = new OrderedListFragmentHelper<String>(this, new SubtasksUpdater());
} }
@Override @Override

@ -38,6 +38,12 @@ public class SubtasksUpdater extends OrderedListUpdater<String> {
return null; return null;
} }
@Override
protected void initialize(String list, Filter filter) {
applySubtasksToFilter(filter, list);
sanitizeTaskList(filter, list);
}
@Override @Override
protected Metadata getTaskMetadata(String list, long taskId) { protected Metadata getTaskMetadata(String list, long taskId) {
TodorooCursor<Metadata> cursor = metadataService.query(Query.select(Metadata.PROPERTIES).where( TodorooCursor<Metadata> cursor = metadataService.query(Query.select(Metadata.PROPERTIES).where(

Loading…
Cancel
Save