Check if account thread is alive

pull/175/head
M66B 5 years ago
parent 84afb46777
commit f0b88c8d2c

@ -3503,6 +3503,10 @@ class Core {
join(thread);
}
boolean isAlive() {
return thread.isAlive();
}
boolean isRunning() {
return running;
}

@ -236,15 +236,16 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
// Some networks disallow email server connections:
// - reload on network type change when disconnected
boolean isRunning = (state != null && state.isAlive());
if (reload ||
prev.canRun() != current.canRun() ||
isRunning != current.canRun() ||
!prev.accountState.equals(current.accountState) ||
(!"connected".equals(current.accountState.state) &&
!Objects.equals(prev.networkState.getType(), current.networkState.getType()))) {
if (prev.canRun() || current.canRun())
if (isRunning || current.canRun())
EntityLog.log(ServiceSynchronize.this, "### changed " + current +
" reload=" + reload +
" stop=" + prev.canRun() +
" stop=" + isRunning +
" start=" + current.canRun() +
" sync=" + current.accountState.isEnabled(current.enabled) + "/" + sync +
" changed=" + !prev.accountState.equals(current.accountState) +
@ -255,7 +256,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
" tbd=" + current.accountState.tbd +
" state=" + current.accountState.state +
" type=" + prev.networkState.getType() + "/" + current.networkState.getType());
if (prev.canRun())
if (isRunning)
stop(prev);
if (current.canRun())
start(current, current.accountState.isEnabled(current.enabled) || sync);

Loading…
Cancel
Save