mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-03 15:46:34 +02:00
Save draft before undo/redo
This commit is contained in:
@@ -2956,6 +2956,35 @@ public class FragmentCompose extends FragmentBase {
|
||||
db.message().updateMessage(draft);
|
||||
}
|
||||
|
||||
// Save changed draft
|
||||
File file = draft.getFile(context);
|
||||
if (!file.exists())
|
||||
Helper.writeText(file, body);
|
||||
String previous = Helper.readText(file);
|
||||
if (!body.equals(previous)) {
|
||||
dirty = true;
|
||||
|
||||
if (draft.revisions == null)
|
||||
draft.revisions = 1;
|
||||
else
|
||||
draft.revisions++;
|
||||
|
||||
if (action != R.id.action_undo && action != R.id.action_redo)
|
||||
draft.revision = draft.revisions;
|
||||
|
||||
Helper.writeText(draft.getFile(context), body);
|
||||
Helper.writeText(draft.getFile(context, draft.revisions), body);
|
||||
|
||||
db.message().setMessageRevision(draft.id, draft.revision);
|
||||
db.message().setMessageRevisions(draft.id, draft.revisions);
|
||||
|
||||
db.message().setMessageContent(draft.id,
|
||||
true,
|
||||
draft.plain_only,
|
||||
HtmlHelper.getPreview(body),
|
||||
null);
|
||||
}
|
||||
|
||||
if (action == R.id.action_undo || action == R.id.action_redo) {
|
||||
if (draft.revision != null && draft.revisions != null) {
|
||||
dirty = true;
|
||||
@@ -2979,32 +3008,6 @@ public class FragmentCompose extends FragmentBase {
|
||||
HtmlHelper.getPreview(body),
|
||||
null);
|
||||
}
|
||||
} else {
|
||||
File file = draft.getFile(context);
|
||||
if (!file.exists())
|
||||
Helper.writeText(file, body);
|
||||
String previous = Helper.readText(file);
|
||||
if (!body.equals(previous)) {
|
||||
dirty = true;
|
||||
|
||||
if (draft.revisions == null)
|
||||
draft.revisions = 1;
|
||||
else
|
||||
draft.revisions++;
|
||||
draft.revision = draft.revisions;
|
||||
|
||||
Helper.writeText(draft.getFile(context), body);
|
||||
Helper.writeText(draft.getFile(context, draft.revisions), body);
|
||||
|
||||
db.message().setMessageRevision(draft.id, draft.revision);
|
||||
db.message().setMessageRevisions(draft.id, draft.revisions);
|
||||
|
||||
db.message().setMessageContent(draft.id,
|
||||
true,
|
||||
draft.plain_only,
|
||||
HtmlHelper.getPreview(body),
|
||||
null);
|
||||
}
|
||||
}
|
||||
|
||||
if (dirty) {
|
||||
|
||||
Reference in New Issue
Block a user