Simplified signature edit

This commit is contained in:
M66B 2019-06-22 08:03:35 +02:00
parent 8bd364b050
commit 1a606cbf6d
1 changed files with 11 additions and 17 deletions

View File

@ -27,6 +27,7 @@ import android.graphics.drawable.GradientDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.text.Editable; import android.text.Editable;
import android.text.SpannableStringBuilder;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
@ -128,7 +129,6 @@ public class FragmentIdentity extends FragmentBase {
private long id = -1; private long id = -1;
private boolean saving = false; private boolean saving = false;
private int color = Color.TRANSPARENT; private int color = Color.TRANSPARENT;
private String signature = null;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
@ -295,15 +295,9 @@ public class FragmentIdentity extends FragmentBase {
@Override @Override
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if (etSignature.getTag() == null) { SpannableStringBuilder ssb = new SpannableStringBuilder(s);
if (TextUtils.isEmpty(s)) Helper.clearComposingText(ssb);
signature = null; etSignature.setTag(HtmlHelper.toHtml(ssb));
else {
Helper.clearComposingText(s);
signature = HtmlHelper.toHtml(s);
}
} else
etSignature.setTag(null);
} }
}); });
@ -312,7 +306,7 @@ public class FragmentIdentity extends FragmentBase {
public void onClick(View v) { public void onClick(View v) {
View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_signature, null); View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_signature, null);
final EditText etHtml = dview.findViewById(R.id.etHtml); final EditText etHtml = dview.findViewById(R.id.etHtml);
etHtml.setText(signature); etHtml.setText((String) etSignature.getTag());
new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner()) new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
.setTitle(R.string.title_edit_html) .setTitle(R.string.title_edit_html)
@ -320,9 +314,9 @@ public class FragmentIdentity extends FragmentBase {
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
signature = etHtml.getText().toString(); String html = etHtml.getText().toString();
etSignature.setTag(true); etSignature.setText(HtmlHelper.fromHtml(html));
etSignature.setText(HtmlHelper.fromHtml(signature)); etSignature.setTag(html);
} }
}) })
.show(); .show();
@ -517,7 +511,7 @@ public class FragmentIdentity extends FragmentBase {
args.putString("realm", etRealm.getText().toString()); args.putString("realm", etRealm.getText().toString());
args.putBoolean("use_ip", cbUseIp.isChecked()); args.putBoolean("use_ip", cbUseIp.isChecked());
args.putInt("color", color); args.putInt("color", color);
args.putString("signature", signature); args.putString("signature", (String) etSignature.getTag());
args.putBoolean("synchronize", cbSynchronize.isChecked()); args.putBoolean("synchronize", cbSynchronize.isChecked());
args.putBoolean("primary", cbPrimary.isChecked()); args.putBoolean("primary", cbPrimary.isChecked());
@ -856,9 +850,9 @@ public class FragmentIdentity extends FragmentBase {
etDisplay.setText(identity == null ? null : identity.display); etDisplay.setText(identity == null ? null : identity.display);
signature = (identity == null ? null : identity.signature); String signature = (identity == null ? null : identity.signature);
etSignature.setTag(true);
etSignature.setText(TextUtils.isEmpty(signature) ? null : HtmlHelper.fromHtml(signature)); etSignature.setText(TextUtils.isEmpty(signature) ? null : HtmlHelper.fromHtml(signature));
etSignature.setTag(signature);
etHost.setText(identity == null ? null : identity.host); etHost.setText(identity == null ? null : identity.host);
rgEncryption.check(identity != null && identity.starttls ? R.id.radio_starttls : R.id.radio_ssl); rgEncryption.check(identity != null && identity.starttls ? R.id.radio_starttls : R.id.radio_ssl);