From a60de82922baec2536079231d1acea037d0cb673 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 21 Sep 2019 10:05:24 +0200 Subject: [PATCH] Improved bread crumb --- app/src/main/java/eu/faircode/email/Core.java | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 44bbc80bd1..07bb701415 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -26,6 +26,7 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.database.sqlite.SQLiteConstraintException; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -145,15 +146,6 @@ class Core { " msg=" + op.message + " args=" + op.args); - Map crumb = new HashMap<>(); - crumb.put("name", op.name); - crumb.put("args", op.args); - crumb.put("folder", op.account + ":" + op.folder + ":" + folder.type); - if (op.message != null) - crumb.put("message", Long.toString(op.message)); - crumb.put("free", Integer.toString(Log.getFreeMemMb())); - Log.breadcrumb("operation", crumb); - // Fetch most recent copy of message EntityMessage message = null; if (op.message != null) @@ -197,6 +189,7 @@ class Core { } } } + if (skip) { Log.i(folder.name + " skipping op=" + op.id + "/" + op.name + @@ -205,6 +198,15 @@ class Core { continue; } + Map crumb = new HashMap<>(); + crumb.put("name", op.name); + crumb.put("args", op.args); + crumb.put("folder", op.account + ":" + op.folder + ":" + folder.type); + if (op.message != null) + crumb.put("message", Long.toString(op.message)); + crumb.put("free", Integer.toString(Log.getFreeMemMb())); + Log.breadcrumb("start operation", crumb); + if (istore instanceof POP3Store) switch (op.name) { case EntityOperation.SEEN: @@ -297,6 +299,9 @@ class Core { } } + crumb.put("free", Integer.toString(Log.getFreeMemMb())); + Log.breadcrumb("end operation", crumb); + // Operation succeeded db.operation().deleteOperation(op.id); } catch (Throwable ex) { @@ -1861,6 +1866,14 @@ class Core { runRules(context, imessage, message, rules); db.setTransactionSuccessful(); + } catch (SQLiteConstraintException ex) { + Log.e(ex); + + Map crumb = new HashMap<>(); + crumb.put("folder", message.account + ":" + message.folder + ":" + folder.type); + crumb.put("message", uid + ":" + message.uid); + crumb.put("what", ex.getMessage()); + Log.breadcrumb("insert", crumb); } finally { db.endTransaction(); }