diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 3ad280e7f2..0e89297265 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -45,6 +45,7 @@ import android.graphics.Color; import android.graphics.ImageDecoder; import android.graphics.Matrix; import android.graphics.Rect; +import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.net.ConnectivityManager; @@ -273,6 +274,7 @@ public class FragmentCompose extends FragmentBase { private int compose_color; private String compose_font; + private boolean compose_monospaced; private String display_font; private boolean dsn = true; private Integer encrypt = null; @@ -337,6 +339,7 @@ public class FragmentCompose extends FragmentBase { compose_color = prefs.getInt("compose_color", Color.TRANSPARENT); compose_font = prefs.getString("compose_font", ""); + compose_monospaced = prefs.getBoolean("compose_monospaced", false); display_font = prefs.getString("display_font", ""); style = prefs.getBoolean("compose_style", false); media = prefs.getBoolean("compose_media", true); @@ -5953,6 +5956,16 @@ public class FragmentCompose extends FragmentBase { draft.isPlainOnly() && !plain_only ? View.VISIBLE : View.GONE); + if (compose_monospaced) { + if (draft.isPlainOnly()) + etBody.setTypeface(Typeface.MONOSPACE); + else { + Typeface tf = etBody.getTypeface(); + if (tf == Typeface.MONOSPACE) + etBody.setTypeface(StyleHelper.getTypeface(compose_font, etBody.getContext())); + } + } + tvNoInternet.setTag(draft.content); checkInternet(); } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java index 4515ff0cfc..65440fb0f8 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java @@ -84,6 +84,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc private ViewButtonColor btnComposeColor; private Spinner spComposeFont; + private SwitchCompat swComposeMonospaced; private SwitchCompat swPrefixOnce; private SwitchCompat swPrefixCount; private RadioGroup rgRe; @@ -124,7 +125,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc "send_delayed", "answer_single", "answer_action", "sound_sent", - "compose_color", "compose_font", + "compose_color", "compose_font", "compose_monospaced", "prefix_once", "prefix_count", "alt_re", "alt_fwd", "separate_reply", "extended_reply", "write_below", "quote_reply", "quote_limit", "resize_reply", "signature_location", "signature_new", "signature_reply", "signature_reply_once", "signature_forward", @@ -167,6 +168,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc btnComposeColor = view.findViewById(R.id.btnComposeColor); spComposeFont = view.findViewById(R.id.spComposeFont); + swComposeMonospaced = view.findViewById(R.id.swComposeMonospaced); swPrefixOnce = view.findViewById(R.id.swPrefixOnce); swPrefixCount = view.findViewById(R.id.swPrefixCount); rgRe = view.findViewById(R.id.rgRe); @@ -435,6 +437,14 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc } }); + swComposeMonospaced.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("compose_monospaced", checked).apply(); + swPrefixCount.setEnabled(checked); + } + }); + swPrefixOnce.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -770,6 +780,8 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc } } + swComposeMonospaced.setChecked(prefs.getBoolean("compose_monospaced", false)); + swPrefixOnce.setChecked(prefs.getBoolean("prefix_once", true)); swPrefixCount.setChecked(prefs.getBoolean("prefix_count", false)); swPrefixCount.setEnabled(swPrefixOnce.isChecked()); diff --git a/app/src/main/res/layout/fragment_options_send.xml b/app/src/main/res/layout/fragment_options_send.xml index 8ee7c3679a..6067027905 100644 --- a/app/src/main/res/layout/fragment_options_send.xml +++ b/app/src/main/res/layout/fragment_options_send.xml @@ -457,6 +457,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvComposeFont" /> + + Automatically save a draft after every sentence Default text color Default font + Use monospaced font for plain text messages Automatically select identities for new messages Prefix subject only once on replying or forwarding Add count to reply prefix