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.ui.DraggableListView;
public class SubtasksFragmentHelper {
public class OrderedListFragmentHelper<LIST> {
private final DisplayMetrics metrics = new DisplayMetrics();
private final SubtasksUpdater updater = new SubtasksUpdater();
private final OrderedListUpdater<LIST> 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<LIST> 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;
}

@ -25,7 +25,7 @@ abstract public class OrderedListUpdater<LIST> {
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<LIST> {
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) {
//
}

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

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

@ -38,6 +38,12 @@ public class SubtasksUpdater extends OrderedListUpdater<String> {
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<Metadata> cursor = metadataService.query(Query.select(Metadata.PROPERTIES).where(

Loading…
Cancel
Save