From 8a4226174f36a1c1b7f716ea7df51f0bae387ef1 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 19 Mar 2024 19:25:03 +0100 Subject: [PATCH] Protect header on unencrypt --- .../java/eu/faircode/email/FragmentMessages.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 95db9c0181..c2ca63a888 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -8294,6 +8294,9 @@ public class FragmentMessages extends FragmentBase return; } + if (message.revision != null && message.revision < 0) + db.message().setMessageSubject(message.id, "..."); + File file = message.getFile(context); Helper.writeText(file, null); db.message().setMessageContent(message.id, true, null, null, null, null); @@ -9228,6 +9231,7 @@ public class FragmentMessages extends FragmentBase String text = Helper.readText(plain); String html = "
" + HtmlHelper.formatPlainText(text) + "
"; Helper.writeText(message.getFile(context), html); + db.message().setMessageRevision(message.id, 1); db.message().setMessageStored(message.id, new Date().getTime()); db.message().setMessageFts(message.id, false); @@ -9300,11 +9304,11 @@ public class FragmentMessages extends FragmentBase } } - checkPep(message, remotes, context); + boolean pep = checkPep(message, remotes, context); encrypt = parts.getEncryption(); db.message().setMessageEncrypt(message.id, encrypt); - db.message().setMessageRevision(message.id, 1); + db.message().setMessageRevision(message.id, pep || protect_subject == null ? 1 : -1); db.message().setMessageStored(message.id, new Date().getTime()); db.message().setMessageFts(message.id, false); @@ -10040,10 +10044,11 @@ public class FragmentMessages extends FragmentBase } } - checkPep(message, remotes, context); + boolean pep = checkPep(message, remotes, context); db.message().setMessageEncrypt(message.id, signedData ? EntityMessage.SMIME_SIGNONLY : parts.getEncryption()); + db.message().setMessageRevision(message.id, pep || protect_subject == null ? 1 : -1); db.message().setMessageStored(message.id, new Date().getTime()); db.message().setMessageFts(message.id, false); @@ -10100,7 +10105,7 @@ public class FragmentMessages extends FragmentBase }.serial().execute(this, args, "decrypt:s/mime"); } - private static void checkPep(EntityMessage message, List remotes, Context context) { + private static boolean checkPep(EntityMessage message, List remotes, Context context) { DB db = DB.getInstance(context); for (EntityAttachment remote : remotes) if ("message/rfc822".equals(remote.getMimeType())) @@ -10138,10 +10143,11 @@ public class FragmentMessages extends FragmentBase db.endTransaction(); } - break; + return true; } catch (Throwable ex) { Log.e(ex); } + return false; } private void onDelete(long id) {