|
|
@ -241,6 +241,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
|
|
|
|
|
|
|
|
|
|
|
liveAccountNetworkState.observeForever(new Observer<List<TupleAccountNetworkState>>() {
|
|
|
|
liveAccountNetworkState.observeForever(new Observer<List<TupleAccountNetworkState>>() {
|
|
|
|
private boolean fts = false;
|
|
|
|
private boolean fts = false;
|
|
|
|
|
|
|
|
private boolean lastConnected = false;
|
|
|
|
private int lastEventId = 0;
|
|
|
|
private int lastEventId = 0;
|
|
|
|
private int lastQuitId = -1;
|
|
|
|
private int lastQuitId = -1;
|
|
|
|
private List<Long> initialized = new ArrayList<>();
|
|
|
|
private List<Long> initialized = new ArrayList<>();
|
|
|
@ -264,6 +265,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
|
|
|
liveAccountNetworkState.removeObserver(this);
|
|
|
|
liveAccountNetworkState.removeObserver(this);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
int accounts = 0;
|
|
|
|
int accounts = 0;
|
|
|
|
|
|
|
|
int enabled = 0;
|
|
|
|
int operations = 0;
|
|
|
|
int operations = 0;
|
|
|
|
boolean event = false;
|
|
|
|
boolean event = false;
|
|
|
|
boolean runService = false;
|
|
|
|
boolean runService = false;
|
|
|
@ -275,9 +277,12 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (current.accountState.shouldRun(current.enabled))
|
|
|
|
if (current.accountState.shouldRun(current.enabled))
|
|
|
|
runService = true;
|
|
|
|
runService = true;
|
|
|
|
if (!current.accountState.isTransient(ServiceSynchronize.this) &&
|
|
|
|
if (!current.accountState.isTransient(ServiceSynchronize.this)) {
|
|
|
|
("connected".equals(current.accountState.state) || current.accountState.backoff_until != null))
|
|
|
|
if (current.accountState.isEnabled(current.enabled))
|
|
|
|
accounts++;
|
|
|
|
enabled++;
|
|
|
|
|
|
|
|
if ("connected".equals(current.accountState.state) || current.accountState.backoff_until != null)
|
|
|
|
|
|
|
|
accounts++;
|
|
|
|
|
|
|
|
}
|
|
|
|
if (current.accountState.synchronize)
|
|
|
|
if (current.accountState.synchronize)
|
|
|
|
operations += current.accountState.operations;
|
|
|
|
operations += current.accountState.operations;
|
|
|
|
|
|
|
|
|
|
|
@ -382,6 +387,13 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean connected = (enabled > 0 && accounts == enabled);
|
|
|
|
|
|
|
|
if (lastConnected != connected) {
|
|
|
|
|
|
|
|
lastConnected = connected;
|
|
|
|
|
|
|
|
prefs.edit().putBoolean("connected", connected).apply();
|
|
|
|
|
|
|
|
WidgetSync.update(ServiceSynchronize.this);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (event) {
|
|
|
|
if (event) {
|
|
|
|
lastEventId++;
|
|
|
|
lastEventId++;
|
|
|
|
EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Scheduling,
|
|
|
|
EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Scheduling,
|
|
|
|