Refactor so that every metadata change triggers a sync in gtasks dragging

pull/14/head
Tim Su 13 years ago
parent ac3fc60be1
commit 786a1ff5ef

@ -16,7 +16,6 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
import com.todoroo.astrid.service.SyncV2Service;
import com.todoroo.astrid.subtasks.OrderedListFragmentHelper;
import com.todoroo.astrid.subtasks.SubtasksListFragment;
@ -35,8 +34,6 @@ public class GtasksListFragment extends SubtasksListFragment {
@Autowired private GtasksMetadataService gtasksMetadataService;
@Autowired private GtasksSyncService gtasksSyncService;
@Autowired private GtasksPreferenceService gtasksPreferenceService;
@Autowired private SyncV2Service syncService;
@ -54,13 +51,7 @@ public class GtasksListFragment extends SubtasksListFragment {
@Override
protected OrderedListFragmentHelper<?> createFragmentHelper() {
return new OrderedListFragmentHelper<StoreObject>(this, gtasksTaskListUpdater) {
@Override
protected void onMetadataChanged(long targetTaskId) {
gtasksSyncService.triggerMoveForMetadata(gtasksMetadataService.
getTaskMetadata(targetTaskId));
}
};
return new OrderedListFragmentHelper<StoreObject>(this, gtasksTaskListUpdater);
}
@Override

@ -21,6 +21,7 @@ import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
import com.todoroo.astrid.subtasks.OrderedListUpdater;
public class GtasksTaskListUpdater extends OrderedListUpdater<StoreObject> {
@ -36,6 +37,7 @@ public class GtasksTaskListUpdater extends OrderedListUpdater<StoreObject> {
@Autowired private GtasksListService gtasksListService;
@Autowired private GtasksMetadataService gtasksMetadataService;
@Autowired private GtasksSyncService gtasksSyncService;
@Autowired private MetadataDao metadataDao;
public GtasksTaskListUpdater() {
@ -80,6 +82,11 @@ public class GtasksTaskListUpdater extends OrderedListUpdater<StoreObject> {
gtasksMetadataService.iterateThroughList(list, iterator);
}
@Override
protected void onMetadataChanged(Metadata metadata) {
gtasksSyncService.triggerMoveForMetadata(metadata);
}
// --- used during synchronization
/**

@ -21,7 +21,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.GtasksMetadata;
import com.todoroo.astrid.gtasks.GtasksMetadataService;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.gtasks.GtasksTaskListUpdater;
import com.todoroo.astrid.gtasks.api.CreateRequest;
import com.todoroo.astrid.gtasks.api.GtasksApiUtilities;
import com.todoroo.astrid.gtasks.api.GtasksInvoker;
@ -36,7 +35,6 @@ public final class GtasksSyncService {
@Autowired GtasksMetadataService gtasksMetadataService;
@Autowired TaskDao taskDao;
@Autowired GtasksPreferenceService gtasksPreferenceService;
@Autowired GtasksTaskListUpdater gtasksTaskListUpdater;
public GtasksSyncService() {
DependencyInjectionService.getInstance().inject(this);
@ -109,12 +107,8 @@ public final class GtasksSyncService {
});
}
private static final Property<?>[] TASK_PROPERTIES =
{ Task.TITLE,
Task.NOTES,
Task.DUE_DATE,
Task.COMPLETION_DATE,
Task.DELETION_DATE };
private static final Property<?>[] TASK_PROPERTIES = { Task.ID, Task.TITLE,
Task.NOTES, Task.DUE_DATE, Task.COMPLETION_DATE, Task.DELETION_DATE };
/**
* Checks to see if any of the values changed are among the properties we sync
@ -124,7 +118,7 @@ public final class GtasksSyncService {
*/
private boolean checkValuesForProperties(ContentValues values, Property<?>[] properties) {
for (Property<?> property : properties) {
if (values.containsKey(property.name))
if (property != Task.ID && values.containsKey(property.name))
return true;
}
return false;

@ -142,7 +142,6 @@ public class OrderedListFragmentHelper<LIST> {
}
fragment.loadTaskListContent(true);
onMetadataChanged(targetTaskId);
}
};
@ -166,7 +165,6 @@ public class OrderedListFragmentHelper<LIST> {
Log.e("drag", "Indent Error", e); //$NON-NLS-1$ //$NON-NLS-2$
}
fragment.loadTaskListContent(true);
onMetadataChanged(targetTaskId);
}
};
@ -204,13 +202,6 @@ public class OrderedListFragmentHelper<LIST> {
return taskAdapter;
}
/**
* @param targetTaskId
*/
protected void onMetadataChanged(long targetTaskId) {
// hook
}
private final class DraggableTaskAdapter extends TaskAdapter {
private DraggableTaskAdapter(TaskListFragment activity, int resource,

@ -54,6 +54,13 @@ abstract public class OrderedListUpdater<LIST> {
//
}
/**
* @param targetTaskId
*/
protected void onMetadataChanged(Metadata metadata) {
//
}
/**
* @param list
* @param taskId
@ -295,6 +302,8 @@ abstract public class OrderedListUpdater<LIST> {
taskContainer.setValue(Task.MODIFICATION_DATE, DateUtilities.now());
taskContainer.setValue(Task.DETAILS_DATE, DateUtilities.now());
PluginServices.getTaskService().save(taskContainer);
taskContainer.clear();
onMetadataChanged(metadata);
}
// --- task cascading operations

Loading…
Cancel
Save