Send improvements

This commit is contained in:
M66B
2018-12-08 19:03:24 +01:00
parent 1800a43bbf
commit 4fb6d0c739
3 changed files with 19 additions and 12 deletions

View File

@@ -143,6 +143,7 @@ public class ServiceSynchronize extends LifecycleService {
private static final long RECONNECT_BACKOFF = 90 * 1000L; // milliseconds
private static final int PREVIEW_SIZE = 250;
private static final int ACCOUNT_ERROR_AFTER = 90; // minutes
private static final int IDENTITY_ERROR_AFTER = 30; // minutes
private static final long STOP_DELAY = 5000L; // milliseconds
static final int PI_WHY = 1;
@@ -866,7 +867,9 @@ public class ServiceSynchronize extends LifecycleService {
if (account.last_connected != null) {
EntityLog.log(this, account.name + " last connected: " + new Date(account.last_connected));
long now = new Date().getTime();
if (now - account.last_connected > ACCOUNT_ERROR_AFTER * 60 * 1000L) {
long delayed = now - account.last_connected;
if (delayed > ACCOUNT_ERROR_AFTER * 60 * 1000L) {
Log.i(Helper.TAG, "Reporting sync error after=" + delayed);
NotificationManager nm = getSystemService(NotificationManager.class);
nm.notify("receive", account.id.intValue(),
getNotificationError(account.name, account.last_connected, ex, false).build());
@@ -1351,7 +1354,8 @@ public class ServiceSynchronize extends LifecycleService {
Log.i(Helper.TAG, folder.name + " start process");
DB db = DB.getInstance(this);
List<EntityOperation> ops = db.operation().getOperationsByFolder(folder.id);
List<EntityOperation> ops = db.operation().getOperationsByFolder(
folder.id, EntityFolder.OUTBOX.equals(folder.type));
Log.i(Helper.TAG, folder.name + " pending operations=" + ops.size());
for (int i = 0; i < ops.size() && state.running(); i++) {
EntityOperation op = ops.get(i);
@@ -1692,7 +1696,7 @@ public class ServiceSynchronize extends LifecycleService {
db.identity().setIdentityError(ident.id, null);
NotificationManager nm = getSystemService(NotificationManager.class);
nm.cancel("send", message.account.intValue());
nm.cancel("send", message.identity.intValue());
// Send message
Address[] to = imessage.getAllRecipients();
@@ -1762,9 +1766,11 @@ public class ServiceSynchronize extends LifecycleService {
EntityLog.log(this, ident.name + " last attempt: " + new Date(message.last_attempt));
long now = new Date().getTime();
if (now - message.last_attempt > ACCOUNT_ERROR_AFTER * 60 * 1000L) {
long delayed = now - message.last_attempt;
if (delayed > IDENTITY_ERROR_AFTER * 60 * 1000L) {
Log.i(Helper.TAG, "Reporting send error after=" + delayed);
NotificationManager nm = getSystemService(NotificationManager.class);
nm.notify("send", message.account.intValue(), getNotificationError(ident.name, ex).build());
nm.notify("send", message.identity.intValue(), getNotificationError(ident.name, ex).build());
}
throw ex;
@@ -2090,7 +2096,6 @@ public class ServiceSynchronize extends LifecycleService {
}
db.folder().setFolderError(folder.id, null);
} finally {
Log.v(Helper.TAG, folder.name + " end sync state=" + state);
db.folder().setFolderSyncState(folder.id, null);