IDLE when supported only

pull/50/head
M66B 6 years ago
parent 78cd6c8e79
commit 776d4bba00

@ -589,32 +589,34 @@ public class ServiceSynchronize extends LifecycleService {
noops.add(noop); noops.add(noop);
// Receive folder events // Receive folder events
Thread idle = new Thread(new Runnable() { if (istore.hasCapability("IDLE")) {
@Override Thread idle = new Thread(new Runnable() {
public void run() { @Override
try { public void run() {
Log.i(Helper.TAG, folder.name + " start idle"); try {
while (state.running && ifolder.isOpen()) { Log.i(Helper.TAG, folder.name + " start idle");
Log.i(Helper.TAG, folder.name + " do idle"); while (state.running && ifolder.isOpen()) {
ifolder.idle(false); Log.i(Helper.TAG, folder.name + " do idle");
Log.i(Helper.TAG, folder.name + " done idle"); ifolder.idle(false);
} Log.i(Helper.TAG, folder.name + " done idle");
} catch (Throwable ex) { }
Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex)); } catch (Throwable ex) {
reportError(account.name, folder.name, ex); Log.e(Helper.TAG, folder.name + " " + ex + "\n" + Log.getStackTraceString(ex));
reportError(account.name, folder.name, ex);
db.folder().setFolderError(folder.id, Helper.formatThrowable(ex)); db.folder().setFolderError(folder.id, Helper.formatThrowable(ex));
synchronized (state) { synchronized (state) {
state.notifyAll(); state.notifyAll();
}
} finally {
Log.i(Helper.TAG, folder.name + " end idle");
} }
} finally {
Log.i(Helper.TAG, folder.name + " end idle");
} }
} }, "sync.idle." + folder.id);
}, "sync.idle." + folder.id); idle.start();
idle.start(); idlers.add(idle);
idlers.add(idle); }
} }
BroadcastReceiver processReceiver = new BroadcastReceiver() { BroadcastReceiver processReceiver = new BroadcastReceiver() {

Loading…
Cancel
Save