|
|
|
@ -709,6 +709,9 @@ public final class ActFmSyncService {
|
|
|
|
if (attachmentId <= 0)
|
|
|
|
if (attachmentId <= 0)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!checkForToken())
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
ArrayList<Object> params = new ArrayList<Object>();
|
|
|
|
ArrayList<Object> params = new ArrayList<Object>();
|
|
|
|
params.add("id"); params.add(attachmentId);
|
|
|
|
params.add("id"); params.add(attachmentId);
|
|
|
|
params.add("token"); params.add(token);
|
|
|
|
params.add("token"); params.add(token);
|
|
|
|
@ -809,6 +812,7 @@ public final class ActFmSyncService {
|
|
|
|
task.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
|
|
|
|
task.putTransitory(SyncFlags.ACTFM_SUPPRESS_SYNC, true);
|
|
|
|
taskService.save(task);
|
|
|
|
taskService.save(task);
|
|
|
|
metadataService.synchronizeMetadata(task.getId(), metadata, Metadata.KEY.eq(TagService.KEY));
|
|
|
|
metadataService.synchronizeMetadata(task.getId(), metadata, Metadata.KEY.eq(TagService.KEY));
|
|
|
|
|
|
|
|
synchronizeAttachments(result, task);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@ -1243,6 +1247,7 @@ public final class ActFmSyncService {
|
|
|
|
protected Class<Task> typeClass() {
|
|
|
|
protected Class<Task> typeClass() {
|
|
|
|
return Task.class;
|
|
|
|
return Task.class;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void synchronizeAttachments(JSONObject item, Task model) {
|
|
|
|
private void synchronizeAttachments(JSONObject item, Task model) {
|
|
|
|
TodorooCursor<Metadata> attachments = metadataService.query(Query.select(Metadata.PROPERTIES)
|
|
|
|
TodorooCursor<Metadata> attachments = metadataService.query(Query.select(Metadata.PROPERTIES)
|
|
|
|
@ -1282,10 +1287,16 @@ public final class ActFmSyncService {
|
|
|
|
Set<Long> attachmentsToDelete = currentFiles.keySet();
|
|
|
|
Set<Long> attachmentsToDelete = currentFiles.keySet();
|
|
|
|
for (Long remoteId : attachmentsToDelete) {
|
|
|
|
for (Long remoteId : attachmentsToDelete) {
|
|
|
|
Metadata toDelete = currentFiles.get(remoteId);
|
|
|
|
Metadata toDelete = currentFiles.get(remoteId);
|
|
|
|
|
|
|
|
String path = toDelete.getValue(FileMetadata.FILE_PATH);
|
|
|
|
|
|
|
|
if (TextUtils.isEmpty(path))
|
|
|
|
|
|
|
|
metadataService.delete(toDelete);
|
|
|
|
|
|
|
|
else {
|
|
|
|
File f = new File(toDelete.getValue(FileMetadata.FILE_PATH));
|
|
|
|
File f = new File(toDelete.getValue(FileMetadata.FILE_PATH));
|
|
|
|
if (f.delete()) {
|
|
|
|
if (!f.exists() || f.delete()) {
|
|
|
|
metadataService.delete(toDelete);
|
|
|
|
metadataService.delete(toDelete);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} catch (JSONException e) {
|
|
|
|
} catch (JSONException e) {
|
|
|
|
@ -1295,8 +1306,6 @@ public final class ActFmSyncService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** Call sync method */
|
|
|
|
/** Call sync method */
|
|
|
|
private void invokeFetchList(final String model, final boolean manual, final SyncExceptionHandler handler,
|
|
|
|
private void invokeFetchList(final String model, final boolean manual, final SyncExceptionHandler handler,
|
|
|
|
final ListItemProcessor<?> processor, final Runnable done, final String lastSyncKey,
|
|
|
|
final ListItemProcessor<?> processor, final Runnable done, final String lastSyncKey,
|
|
|
|
|