Added logging, refactor reforce sync

pull/201/head
M66B 4 years ago
parent 2b8b47c32e
commit 80da26cc22

@ -324,6 +324,11 @@ public class EntityFolder extends EntityOrder implements Serializable {
return jargs; return jargs;
} }
static boolean isSyncForced(String args) throws JSONException {
JSONArray jargs = new JSONArray(args);
return jargs.optBoolean(5, false);
}
static int getIcon(String type) { static int getIcon(String type) {
if (EntityFolder.INBOX.equals(type)) if (EntityFolder.INBOX.equals(type))
return R.drawable.twotone_inbox_24; return R.drawable.twotone_inbox_24;

@ -1907,19 +1907,23 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
} else { } else {
if (folder.poll_count == 0) { if (folder.poll_count == 0) {
// Cancel pending sync, for example when the folder is not set to poll // Cancel pending sync, for example when the folder is not set to poll
boolean fforce = false;
List<EntityOperation> ops = db.operation().getOperations(folder.account, EntityOperation.SYNC); List<EntityOperation> ops = db.operation().getOperations(folder.account, EntityOperation.SYNC);
if (ops.size() == 0) for (EntityOperation op : ops)
EntityOperation.sync(this, folder.id, false); if (EntityFolder.isSyncForced(op.args)) {
else fforce = true;
for (EntityOperation op : ops) { break;
db.operation().deleteOperation(op.id);
op.id = null;
op.id = db.operation().insertOperation(op);
} }
db.operation().deleteOperation(folder.id, EntityOperation.SYNC);
EntityLog.log(this, folder.name + " queue sync poll");
EntityOperation.sync(this, folder.id, false, fforce);
} }
folder.poll_count = (folder.poll_count + 1) % folder.poll_factor; folder.poll_count = (folder.poll_count + 1) % folder.poll_factor;
db.folder().setFolderPollCount(folder.id, folder.poll_count); db.folder().setFolderPollCount(folder.id, folder.poll_count);
Log.i(folder.name + " poll count=" + folder.poll_count); EntityLog.log(this, folder.name +
" poll count=" + folder.poll_count +
" factor=" + folder.poll_factor);
} }
} }
} catch (Throwable ex) { } catch (Throwable ex) {

Loading…
Cancel
Save