From edb3a1cad88d2fa630af46bf667d50c3b9b0f55d Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 7 Feb 2023 08:35:38 +0100 Subject: [PATCH] Execute local seen/flagged on failure --- .../eu/faircode/email/EntityOperation.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java index 4b551c2842..d175d2d7af 100644 --- a/app/src/main/java/eu/faircode/email/EntityOperation.java +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -834,14 +834,32 @@ public class EntityOperation { if (SEEN.equals(name)) { EntityMessage m = db.message().getMessage(message); - if (m != null) - db.message().setMessageUiSeen(m.id, m.seen); + if (m != null) { + boolean seen = m.seen; + try { + JSONArray jargs = new JSONArray(args); + seen = jargs.getBoolean(0); + } catch (Throwable ex) { + Log.e(ex); + } + db.message().setMessageUiSeen(m.id, seen); + } } if (FLAG.equals(name)) { EntityMessage m = db.message().getMessage(message); - if (m != null) - db.message().setMessageUiFlagged(m.id, m.flagged, m.color); + if (m != null) { + boolean flagged = m.flagged; + Integer color = m.color; + try { + JSONArray jargs = new JSONArray(args); + flagged = jargs.getBoolean(0); + color = (jargs.length() > 1 && !jargs.isNull(1) ? jargs.getInt(1) : null); + } catch (Throwable ex) { + Log.e(ex); + } + db.message().setMessageUiFlagged(m.id, flagged, color); + } } }