Signature editor: restore unchanged HTML

pull/210/head
M66B 3 years ago
parent 28cc7da86f
commit 0cb92c12a7

@ -70,6 +70,7 @@ public class ActivitySignature extends ActivityBase {
private boolean loaded = false; private boolean loaded = false;
private boolean dirty = false; private boolean dirty = false;
private String saved = null;
private static final int REQUEST_IMAGE = 1; private static final int REQUEST_IMAGE = 1;
private static final int REQUEST_FILE = 2; private static final int REQUEST_FILE = 2;
@ -111,8 +112,10 @@ public class ActivitySignature extends ActivityBase {
@Override @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { public void onTextChanged(CharSequence s, int start, int before, int count) {
if (loaded) if (loaded) {
dirty = true; dirty = true;
saved = null;
}
} }
@Override @Override
@ -207,8 +210,10 @@ public class ActivitySignature extends ActivityBase {
if (savedInstanceState == null) { if (savedInstanceState == null) {
load(getIntent().getStringExtra("html")); load(getIntent().getStringExtra("html"));
dirty = false; dirty = false;
} else } else {
dirty = savedInstanceState.getBoolean("fair:dirty"); dirty = savedInstanceState.getBoolean("fair:dirty");
saved = savedInstanceState.getString("fair:saved");
}
} }
@Override @Override
@ -223,6 +228,7 @@ public class ActivitySignature extends ActivityBase {
@Override @Override
protected void onSaveInstanceState(Bundle outState) { protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean("fair:dirty", dirty); outState.putBoolean("fair:dirty", dirty);
outState.putString("fair:saved", saved);
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
} }
@ -328,6 +334,7 @@ public class ActivitySignature extends ActivityBase {
String html = (dirty String html = (dirty
? getHtml() ? getHtml()
: getIntent().getStringExtra("html")); : getIntent().getStringExtra("html"));
tvHtmlRemark.setVisibility(raw ? View.VISIBLE : View.GONE); tvHtmlRemark.setVisibility(raw ? View.VISIBLE : View.GONE);
etText.setRaw(raw); etText.setRaw(raw);
etText.setTypeface(raw ? Typeface.MONOSPACE : Typeface.DEFAULT); etText.setTypeface(raw ? Typeface.MONOSPACE : Typeface.DEFAULT);
@ -340,9 +347,12 @@ public class ActivitySignature extends ActivityBase {
private String getHtml() { private String getHtml() {
etText.clearComposingText(); etText.clearComposingText();
if (etText.isRaw()) if (etText.isRaw()) {
return etText.getText().toString(); saved = etText.getText().toString();
else { return saved;
} else {
if (saved != null)
return saved;
String html = HtmlHelper.toHtml(etText.getText(), this); String html = HtmlHelper.toHtml(etText.getText(), this);
Document d = JsoupEx.parse(html); Document d = JsoupEx.parse(html);
return d.body().html(); return d.body().html();

Loading…
Cancel
Save