diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java
index bb62778ff5..0e14b64937 100644
--- a/app/src/main/java/eu/faircode/email/FragmentCompose.java
+++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java
@@ -245,6 +245,7 @@ public class FragmentCompose extends FragmentBase {
private boolean prefix_once = false;
private boolean monospaced = false;
+ private String compose_font;
private Integer encrypt = null;
private boolean media = true;
private boolean compact = false;
@@ -292,6 +293,7 @@ public class FragmentCompose extends FragmentBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefix_once = prefs.getBoolean("prefix_once", true);
monospaced = prefs.getBoolean("monospaced", false);
+ compose_font = prefs.getString("compose_font", monospaced ? "monospace" : "sans-serif");
media = prefs.getBoolean("compose_media", true);
compact = prefs.getBoolean("compose_compact", false);
zoom = prefs.getInt("compose_zoom", compact ? 0 : 1);
@@ -610,7 +612,7 @@ public class FragmentCompose extends FragmentBase {
}
});
- etBody.setTypeface(monospaced ? Typeface.MONOSPACE : Typeface.DEFAULT);
+ etBody.setTypeface(Typeface.create(compose_font, Typeface.NORMAL));
tvReference.setTypeface(monospaced ? Typeface.MONOSPACE : Typeface.DEFAULT);
tvReference.setMovementMethod(LinkMovementMethod.getInstance());
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
index 96192cc12c..9bc49512ae 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
@@ -50,6 +50,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
private SwitchCompat swSendReminders;
private Spinner spSendDelayed;
+ private Spinner spComposeFont;
private SwitchCompat swAutoList;
private SwitchCompat swPrefixOnce;
private SwitchCompat swExtendedReply;
@@ -71,7 +72,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
private final static String[] RESET_OPTIONS = new String[]{
"keyboard", "suggest_sent", "suggested_received", "suggest_frequently",
"send_reminders", "send_delayed",
- "autolist", "prefix_once", "extended_reply", "quote_reply", "resize_reply",
+ "compose_font", "autolist", "prefix_once", "extended_reply", "quote_reply", "resize_reply",
"signature_location", "signature_reply", "signature_forward",
"discard_delete",
"plain_only", "format_flowed", "usenet_signature", "remove_signatures",
@@ -95,6 +96,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
btnLocalContacts = view.findViewById(R.id.btnLocalContacts);
swSendReminders = view.findViewById(R.id.swSendReminders);
spSendDelayed = view.findViewById(R.id.spSendDelayed);
+ spComposeFont = view.findViewById(R.id.spComposeFont);
swAutoList = view.findViewById(R.id.swAutoList);
swPrefixOnce = view.findViewById(R.id.swPrefixOnce);
@@ -178,6 +180,24 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
}
});
+ spComposeFont.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> adapterView, View view, int position, long id) {
+ String[] values = getResources().getStringArray(R.array.fontNameValues);
+ String value = values[position];
+ boolean monospaced = prefs.getBoolean("monospaced", false);
+ if (value.equals(monospaced ? "monospace" : "sans-serif"))
+ prefs.edit().remove("compose_font").apply();
+ else
+ prefs.edit().putString("compose_font", values[position]).apply();
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parent) {
+ prefs.edit().remove("compose_font").apply();
+ }
+ });
+
swAutoList.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@@ -361,6 +381,15 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
break;
}
+ boolean monospaced = prefs.getBoolean("monospaced", false);
+ String compose_font = prefs.getString("compose_font", monospaced ? "monospace" : "sans-serif");
+ String[] fontNameValues = getResources().getStringArray(R.array.fontNameValues);
+ for (int pos = 0; pos < fontNameValues.length; pos++)
+ if (fontNameValues[pos].equals(compose_font)) {
+ spComposeFont.setSelection(pos);
+ break;
+ }
+
swAutoList.setChecked(prefs.getBoolean("autolist", true));
swPrefixOnce.setChecked(prefs.getBoolean("prefix_once", true));
swExtendedReply.setChecked(prefs.getBoolean("extended_reply", false));
diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java
index b7af767cb8..dcef4817d4 100644
--- a/app/src/main/java/eu/faircode/email/MessageHelper.java
+++ b/app/src/main/java/eu/faircode/email/MessageHelper.java
@@ -547,6 +547,8 @@ public class MessageHelper {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean autolist = prefs.getBoolean("autolist", true);
boolean format_flowed = prefs.getBoolean("format_flowed", false);
+ boolean monospaced = prefs.getBoolean("monospaced", false);
+ String compose_font = prefs.getString("compose_font", monospaced ? "monospace" : "sans-serif");
// Build html body
Document document = JsoupEx.parse(message.getFile(context));
@@ -557,6 +559,12 @@ public class MessageHelper {
HtmlHelper.convertLists(document);
if (send) {
+ for (Element child : document.body().children())
+ if (TextUtils.isEmpty(child.attr("fairemail"))) {
+ String style = HtmlHelper.mergeStyles(
+ "font-family:" + compose_font, child.attr("style"));
+ child.attr("style", style);
+ }
document.select("div[fairemail=signature]").removeAttr("fairemail");
document.select("div[fairemail=reference]").removeAttr("fairemail");
}
diff --git a/app/src/main/res/layout/fragment_options_send.xml b/app/src/main/res/layout/fragment_options_send.xml
index 0e2a077187..da042013d1 100644
--- a/app/src/main/res/layout/fragment_options_send.xml
+++ b/app/src/main/res/layout/fragment_options_send.xml
@@ -169,6 +169,28 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spSendDelayed" />
+
+
+
+
Suggest addresses found in sent messages
Suggest addresses found in received messages
Sort suggested addresses on frequency of use
+ Default font
Automatically create lists
Prefix subject only once on replying or forwarding
Use extended reply/forward header