Protect header on unencrypt

pull/214/head
M66B 2 years ago
parent e3c215b2e1
commit 8a4226174f

@ -8294,6 +8294,9 @@ public class FragmentMessages extends FragmentBase
return; return;
} }
if (message.revision != null && message.revision < 0)
db.message().setMessageSubject(message.id, "...");
File file = message.getFile(context); File file = message.getFile(context);
Helper.writeText(file, null); Helper.writeText(file, null);
db.message().setMessageContent(message.id, true, null, null, null, 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 text = Helper.readText(plain);
String html = "<div x-plain=\"true\">" + HtmlHelper.formatPlainText(text) + "</div>"; String html = "<div x-plain=\"true\">" + HtmlHelper.formatPlainText(text) + "</div>";
Helper.writeText(message.getFile(context), html); Helper.writeText(message.getFile(context), html);
db.message().setMessageRevision(message.id, 1);
db.message().setMessageStored(message.id, new Date().getTime()); db.message().setMessageStored(message.id, new Date().getTime());
db.message().setMessageFts(message.id, false); 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(); encrypt = parts.getEncryption();
db.message().setMessageEncrypt(message.id, encrypt); 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().setMessageStored(message.id, new Date().getTime());
db.message().setMessageFts(message.id, false); 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, db.message().setMessageEncrypt(message.id,
signedData ? EntityMessage.SMIME_SIGNONLY : parts.getEncryption()); 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().setMessageStored(message.id, new Date().getTime());
db.message().setMessageFts(message.id, false); db.message().setMessageFts(message.id, false);
@ -10100,7 +10105,7 @@ public class FragmentMessages extends FragmentBase
}.serial().execute(this, args, "decrypt:s/mime"); }.serial().execute(this, args, "decrypt:s/mime");
} }
private static void checkPep(EntityMessage message, List<EntityAttachment> remotes, Context context) { private static boolean checkPep(EntityMessage message, List<EntityAttachment> remotes, Context context) {
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
for (EntityAttachment remote : remotes) for (EntityAttachment remote : remotes)
if ("message/rfc822".equals(remote.getMimeType())) if ("message/rfc822".equals(remote.getMimeType()))
@ -10138,10 +10143,11 @@ public class FragmentMessages extends FragmentBase
db.endTransaction(); db.endTransaction();
} }
break; return true;
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
} }
return false;
} }
private void onDelete(long id) { private void onDelete(long id) {

Loading…
Cancel
Save