diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 0d15abfb7e..9e7cc00599 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -3010,6 +3010,8 @@ public class AdapterMessage extends RecyclerView.Adapter() { @Override protected void onPreExecute(Bundle args) { diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index 8fd1825dac..6fc44bbc16 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -405,6 +405,33 @@ public class Log { } } + public static void breadcrumb(String name, Bundle args) { + Map crumb = new HashMap<>(); + for (String key : args.keySet()) { + Object value = args.get(key); + if (value instanceof Boolean) + crumb.put(key, Boolean.toString((Boolean) value)); + else if (value instanceof Integer) + crumb.put(key, Integer.toString((Integer) value)); + else if (value instanceof Long) + crumb.put(key, Long.toString((Long) value)); + else if (value instanceof Float) + crumb.put(key, Float.toString((Float) value)); + else if (value instanceof Double) + crumb.put(key, Double.toString((Double) value)); + else if (value instanceof String || value instanceof Spanned) { + String v = value.toString(); + if (v.length() > 50) + v = v.substring(0, 50) + "..."; + crumb.put(key, v); + } else if (value == null) + crumb.put(key, ""); + else + crumb.put(key, "<" + value.getClass().getName() + ">"); + } + breadcrumb(name, crumb); + } + public static void breadcrumb(String name, String key, String value) { Map crumb = new HashMap<>(); crumb.put(key, value); diff --git a/app/src/main/java/eu/faircode/email/SimpleTask.java b/app/src/main/java/eu/faircode/email/SimpleTask.java index 0217160ba8..1a4e8c4044 100644 --- a/app/src/main/java/eu/faircode/email/SimpleTask.java +++ b/app/src/main/java/eu/faircode/email/SimpleTask.java @@ -168,6 +168,9 @@ public abstract class SimpleTask implements LifecycleObserver { this.name = name; this.started = new Date().getTime(); + if (BuildConfig.TEST_RELEASE) + Log.breadcrumb("SimpleTask", args); + for (String key : args.keySet()) { Object value = args.get(key); if (value instanceof Spanned)