Merge pull request #168 from sbosley/120326_sb_sync_performance

Gtasks bugfixes
pull/14/head
Tim Su 13 years ago
commit 48eb6c50f0

@ -1017,6 +1017,8 @@ public final class ActFmSyncService {
remote.setFlag(Task.REMINDER_FLAGS, Task.NOTIFY_AFTER_DEADLINE, false); remote.setFlag(Task.REMINDER_FLAGS, Task.NOTIFY_AFTER_DEADLINE, false);
remote.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true); remote.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
if (remote.getValue(Task.USER_ID) != Task.USER_ID_SELF)
remote.putTransitory(SyncFlags.GTASKS_SUPPRESS_SYNC, true);
taskService.save(remote); taskService.save(remote);
ids.add(remote.getId()); ids.add(remote.getId());
metadataService.synchronizeMetadata(remote.getId(), metadata, MetadataCriteria.withKey(TagService.KEY)); metadataService.synchronizeMetadata(remote.getId(), metadata, MetadataCriteria.withKey(TagService.KEY));

@ -107,6 +107,9 @@ public final class GtasksSyncService {
return; return;
Task toPush = taskDao.fetch(model.getId(), TASK_PROPERTIES); Task toPush = taskDao.fetch(model.getId(), TASK_PROPERTIES);
if (toPush.getValue(Task.USER_ID) != Task.USER_ID_SELF)
return;
operationQueue.offer(new TaskPushOp(toPush)); operationQueue.offer(new TaskPushOp(toPush));
} }
}); });
@ -187,9 +190,10 @@ public final class GtasksSyncService {
} }
//If task was newly created but without a title, don't sync--we're in the middle of //If task was newly created but without a title, don't sync--we're in the middle of
//creating a task which may end up being cancelled //creating a task which may end up being cancelled. Also don't sync new but already
//deleted tasks
if (newlyCreated && if (newlyCreated &&
(!values.containsKey(Task.TITLE.name) || TextUtils.isEmpty(task.getValue(Task.TITLE)))) { (!values.containsKey(Task.TITLE.name) || TextUtils.isEmpty(task.getValue(Task.TITLE)) || task.getValue(Task.DELETION_DATE) > 0)) {
return; return;
} }

@ -143,10 +143,11 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
private synchronized void pushUpdated(GtasksInvoker invoker, SyncResultCallback callback) { private synchronized void pushUpdated(GtasksInvoker invoker, SyncResultCallback callback) {
TodorooCursor<Task> queued = taskService.query(Query.select(Task.PROPERTIES). TodorooCursor<Task> queued = taskService.query(Query.select(Task.PROPERTIES).
join(Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where( join(Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(
Criterion.and(Task.USER_ID.eq(Task.USER_ID_SELF),
Criterion.or( Criterion.or(
Criterion.and(MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), Criterion.and(MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
Task.MODIFICATION_DATE.gt(GtasksMetadata.LAST_SYNC)), Task.MODIFICATION_DATE.gt(GtasksMetadata.LAST_SYNC)),
Metadata.KEY.isNull()))); Metadata.KEY.isNull()))));
callback.incrementMax(queued.getCount() * 10); callback.incrementMax(queued.getCount() * 10);
try { try {
Task task = new Task(); Task task = new Task();

Loading…
Cancel
Save