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

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

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

@ -142,7 +142,6 @@ public class OrderedListFragmentHelper<LIST> {
} }
fragment.loadTaskListContent(true); 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$ Log.e("drag", "Indent Error", e); //$NON-NLS-1$ //$NON-NLS-2$
} }
fragment.loadTaskListContent(true); fragment.loadTaskListContent(true);
onMetadataChanged(targetTaskId);
} }
}; };
@ -204,13 +202,6 @@ public class OrderedListFragmentHelper<LIST> {
return taskAdapter; return taskAdapter;
} }
/**
* @param targetTaskId
*/
protected void onMetadataChanged(long targetTaskId) {
// hook
}
private final class DraggableTaskAdapter extends TaskAdapter { private final class DraggableTaskAdapter extends TaskAdapter {
private DraggableTaskAdapter(TaskListFragment activity, int resource, 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 list
* @param taskId * @param taskId
@ -295,6 +302,8 @@ abstract public class OrderedListUpdater<LIST> {
taskContainer.setValue(Task.MODIFICATION_DATE, DateUtilities.now()); taskContainer.setValue(Task.MODIFICATION_DATE, DateUtilities.now());
taskContainer.setValue(Task.DETAILS_DATE, DateUtilities.now()); taskContainer.setValue(Task.DETAILS_DATE, DateUtilities.now());
PluginServices.getTaskService().save(taskContainer); PluginServices.getTaskService().save(taskContainer);
taskContainer.clear();
onMetadataChanged(metadata);
} }
// --- task cascading operations // --- task cascading operations

Loading…
Cancel
Save