diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 57bfd302..19b52c9e 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -202,15 +202,18 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack file.delete(); + EntityMessage draft = null; + DB db = DB.getInstance(context); try { db.beginTransaction(); EntityFolder drafts = db.folder().getPrimaryDrafts(); if (drafts != null) { - EntityMessage draft = new EntityMessage(); + draft = new EntityMessage(); draft.account = drafts.account; draft.folder = drafts.id; + draft.msgid = draft.generateMessageId(); draft.to = new Address[]{to}; draft.subject = context.getString(R.string.app_name) + " crash log"; draft.body = "
" + sb.toString().replaceAll("\\r?\\n", "
") + "
"; @@ -219,14 +222,18 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack draft.ui_seen = false; draft.ui_hide = false; draft.id = db.message().insertMessage(draft); - - return draft.id; } + EntityOperation.queue(db, draft, EntityOperation.ADD); + db.setTransactionSuccessful(); } finally { db.endTransaction(); } + + EntityOperation.process(context); + + return (draft == null ? null : draft.id); } return null; diff --git a/app/src/main/java/eu/faircode/email/FragmentAbout.java b/app/src/main/java/eu/faircode/email/FragmentAbout.java index bdbd9634..b3ec1b75 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAbout.java +++ b/app/src/main/java/eu/faircode/email/FragmentAbout.java @@ -63,6 +63,8 @@ public class FragmentAbout extends FragmentEx { Address to = new InternetAddress("marcel+email@faircode.eu", "FairCode"); + EntityMessage draft; + DB db = DB.getInstance(context); try { db.beginTransaction(); @@ -71,9 +73,10 @@ public class FragmentAbout extends FragmentEx { if (drafts == null) throw new IllegalArgumentException(context.getString(R.string.title_no_drafts)); - EntityMessage draft = new EntityMessage(); + draft = new EntityMessage(); draft.account = drafts.account; draft.folder = drafts.id; + draft.msgid = draft.generateMessageId(); draft.to = new Address[]{to}; draft.subject = BuildConfig.APPLICATION_ID + " debug info"; draft.body = "
" + info.toString().replaceAll("\\r?\\n", "
") + "
"; @@ -83,12 +86,16 @@ public class FragmentAbout extends FragmentEx { draft.ui_hide = false; draft.id = db.message().insertMessage(draft); - db.setTransactionSuccessful(); + EntityOperation.queue(db, draft, EntityOperation.ADD); - return draft.id; + db.setTransactionSuccessful(); } finally { db.endTransaction(); } + + EntityOperation.process(context); + + return draft.id; } @Override diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java index 45b6202e..619cb2df 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessage.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java @@ -468,7 +468,6 @@ public class FragmentMessage extends FragmentEx { EntityOperation.queue(db, draft, EntityOperation.ADD); db.setTransactionSuccessful(); - } finally { db.endTransaction(); }