Start with account/folder check

pull/146/head
M66B 7 years ago
parent 611a326ffa
commit 2507276a1e

@ -839,7 +839,6 @@ public class ServiceSynchronize extends LifecycleService {
Log.i(Helper.TAG, account.name + " idle=" + capIdle); Log.i(Helper.TAG, account.name + " idle=" + capIdle);
db.account().setAccountState(account.id, "connected"); db.account().setAccountState(account.id, "connected");
db.account().setAccountConnected(account.id, new Date().getTime());
db.account().setAccountError(account.id, capIdle ? null : getString(R.string.title_no_idle)); db.account().setAccountError(account.id, capIdle ? null : getString(R.string.title_no_idle));
NotificationManager nm = getSystemService(NotificationManager.class); NotificationManager nm = getSystemService(NotificationManager.class);
@ -1069,9 +1068,6 @@ public class ServiceSynchronize extends LifecycleService {
} }
} }
// Successfully connected: reset back off time
backoff = CONNECT_BACKOFF_START;
// Process folder actions // Process folder actions
BroadcastReceiver processFolder = new BroadcastReceiver() { BroadcastReceiver processFolder = new BroadcastReceiver() {
@Override @Override
@ -1192,6 +1188,22 @@ public class ServiceSynchronize extends LifecycleService {
AlarmManager am = getSystemService(AlarmManager.class); AlarmManager am = getSystemService(AlarmManager.class);
try { try {
while (state.running) { while (state.running) {
if (!istore.isConnected())
throw new StoreClosedException(istore);
for (EntityFolder folder : folders.keySet())
if (capIdle) {
if (!folders.get(folder).isOpen())
throw new FolderClosedException(folders.get(folder));
} else
synchronizeMessages(account, folder, folders.get(folder), state);
// Successfully connected: reset back off time
backoff = CONNECT_BACKOFF_START;
// Record successful connection
db.account().setAccountConnected(account.id, new Date().getTime());
// Schedule keep alive alarm // Schedule keep alive alarm
EntityLog.log(this, account.name + " wait=" + account.poll_interval); EntityLog.log(this, account.name + " wait=" + account.poll_interval);
am.setAndAllowWhileIdle( am.setAndAllowWhileIdle(
@ -1207,21 +1219,6 @@ public class ServiceSynchronize extends LifecycleService {
} finally { } finally {
wl0.acquire(); wl0.acquire();
} }
if (state.running) {
if (!istore.isConnected())
throw new StoreClosedException(istore);
for (EntityFolder folder : folders.keySet())
if (capIdle) {
if (!folders.get(folder).isOpen())
throw new FolderClosedException(folders.get(folder));
} else
synchronizeMessages(account, folder, folders.get(folder), state);
db.account().setAccountConnected(account.id, new Date().getTime());
}
} }
} finally { } finally {
// Cleanup // Cleanup

Loading…
Cancel
Save