Check if account thread is alive

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

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

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

Loading…
Cancel
Save