1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-03-04 10:39:25 +00:00

Fixed wakeup

This commit is contained in:
M66B 2019-12-10 10:36:59 +01:00
parent f18f66c743
commit 12bc106a75

View file

@ -279,8 +279,6 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
}
} else {
TupleAccountNetworkState prev = accountStates.get(index);
accountStates.remove(index);
Core.State state = serviceStates.get(current);
if (state != null)
state.setNetworkState(current.networkState);
@ -294,11 +292,15 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
case "wakeup":
if (state == null)
Log.e("### wakeup without state");
else
else {
Log.i("### waking up " + current);
state.release();
}
continue;
}
accountStates.remove(index);
// Some networks disallow email server connections:
// - reload on network type change when disconnected
if (reload ||
@ -733,11 +735,13 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
try {
wlAccount.acquire();
PendingIntent piWakeup = PendingIntent.getService(
this,
PI_WAKEUP,
new Intent("wakeup:" + account.id),
PendingIntent.FLAG_UPDATE_CURRENT);
Intent wakeup = new Intent(ServiceSynchronize.this, ServiceSynchronize.class);
wakeup.setAction("wakeup:" + account.id);
PendingIntent piWakeup;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O)
piWakeup = PendingIntent.getService(this, PI_WAKEUP, wakeup, PendingIntent.FLAG_UPDATE_CURRENT);
else
piWakeup = PendingIntent.getForegroundService(this, PI_WAKEUP, wakeup, PendingIntent.FLAG_UPDATE_CURRENT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (account.notify)
@ -1201,6 +1205,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
try {
wlAccount.release();
state.acquire(2 * duration);
Log.i("### " + account.name + " keeping alive");
} catch (InterruptedException ex) {
EntityLog.log(this, account.name + " waited state=" + state);
} finally {
@ -1286,6 +1291,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
try {
wlAccount.release();
state.acquire(2 * duration);
Log.i("### " + account.name + " backoff done");
} catch (InterruptedException ex) {
Log.w(account.name + " backoff " + ex.toString());
} finally {