Delete gtasks when they become not assigned to me

pull/14/head
Sam Bosley 12 years ago
parent 54813cc00f
commit 560cdd5424

@ -1,5 +1,6 @@
package com.todoroo.andlib.sql; package com.todoroo.andlib.sql;
import static com.todoroo.andlib.sql.SqlConstants.AND;
import static com.todoroo.andlib.sql.SqlConstants.JOIN; import static com.todoroo.andlib.sql.SqlConstants.JOIN;
import static com.todoroo.andlib.sql.SqlConstants.ON; import static com.todoroo.andlib.sql.SqlConstants.ON;
import static com.todoroo.andlib.sql.SqlConstants.SPACE; import static com.todoroo.andlib.sql.SqlConstants.SPACE;
@ -35,8 +36,10 @@ public class Join {
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(joinType).append(SPACE).append(JOIN).append(SPACE).append(joinTable).append(SPACE).append(ON); sb.append(joinType).append(SPACE).append(JOIN).append(SPACE).append(joinTable).append(SPACE).append(ON);
for (Criterion criterion : criterions) { for (int i = 0; i < criterions.length; i++) {
sb.append(SPACE).append(criterion); sb.append(SPACE).append(criterions[i]);
if (i < criterions.length - 1)
sb.append(SPACE).append(AND);
} }
return sb.toString(); return sb.toString();
} }

@ -108,9 +108,6 @@ 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));
} }
}); });
@ -197,6 +194,17 @@ public final class GtasksSyncService {
com.google.api.services.tasks.model.Task remoteModel = null; com.google.api.services.tasks.model.Task remoteModel = null;
boolean newlyCreated = false; boolean newlyCreated = false;
if (values.containsKey(Task.USER_ID.name) && values.getAsLong(Task.USER_ID.name) != Task.USER_ID_SELF) {
if (gtasksMetadata != null && !TextUtils.isEmpty(gtasksMetadata.getValue(GtasksMetadata.ID))) {
try {
invoker.deleteGtask(gtasksMetadata.getValue(GtasksMetadata.LIST_ID), gtasksMetadata.getValue(GtasksMetadata.ID));
} catch (IOException e) {
metadataDao.delete(gtasksMetadata.getId());
}
}
return;
}
String remoteId = null; String remoteId = null;
String listId = Preferences.getStringValue(GtasksPreferenceService.PREF_DEFAULT_LIST); String listId = Preferences.getStringValue(GtasksPreferenceService.PREF_DEFAULT_LIST);
if (listId == null) { if (listId == null) {

@ -148,12 +148,9 @@ 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, Criterion.and(MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), Task.ID.eq(Metadata.TASK)))).where(
Criterion.and(Task.USER_ID.eq(Task.USER_ID_SELF), Criterion.or(Task.MODIFICATION_DATE.gt(GtasksMetadata.LAST_SYNC),
Criterion.or( Metadata.KEY.isNull())));
Criterion.and(MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY),
Task.MODIFICATION_DATE.gt(GtasksMetadata.LAST_SYNC)),
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