Save draft before undo/redo

pull/167/head
M66B 6 years ago
parent 4e2ec38878
commit 893f43e977

@ -2956,30 +2956,7 @@ public class FragmentCompose extends FragmentBase {
db.message().updateMessage(draft); db.message().updateMessage(draft);
} }
if (action == R.id.action_undo || action == R.id.action_redo) { // Save changed draft
if (draft.revision != null && draft.revisions != null) {
dirty = true;
if (action == R.id.action_undo) {
if (draft.revision > 1)
draft.revision--;
} else {
if (draft.revision < draft.revisions)
draft.revision++;
}
body = Helper.readText(draft.getFile(context, draft.revision));
Helper.writeText(draft.getFile(context), body);
db.message().setMessageRevision(draft.id, draft.revision);
db.message().setMessageContent(draft.id,
true,
draft.plain_only, // unchanged
HtmlHelper.getPreview(body),
null);
}
} else {
File file = draft.getFile(context); File file = draft.getFile(context);
if (!file.exists()) if (!file.exists())
Helper.writeText(file, body); Helper.writeText(file, body);
@ -2991,6 +2968,8 @@ public class FragmentCompose extends FragmentBase {
draft.revisions = 1; draft.revisions = 1;
else else
draft.revisions++; draft.revisions++;
if (action != R.id.action_undo && action != R.id.action_redo)
draft.revision = draft.revisions; draft.revision = draft.revisions;
Helper.writeText(draft.getFile(context), body); Helper.writeText(draft.getFile(context), body);
@ -3005,6 +2984,30 @@ public class FragmentCompose extends FragmentBase {
HtmlHelper.getPreview(body), HtmlHelper.getPreview(body),
null); null);
} }
if (action == R.id.action_undo || action == R.id.action_redo) {
if (draft.revision != null && draft.revisions != null) {
dirty = true;
if (action == R.id.action_undo) {
if (draft.revision > 1)
draft.revision--;
} else {
if (draft.revision < draft.revisions)
draft.revision++;
}
body = Helper.readText(draft.getFile(context, draft.revision));
Helper.writeText(draft.getFile(context), body);
db.message().setMessageRevision(draft.id, draft.revision);
db.message().setMessageContent(draft.id,
true,
draft.plain_only, // unchanged
HtmlHelper.getPreview(body),
null);
}
} }
if (dirty) { if (dirty) {

Loading…
Cancel
Save