From ac97b50b4a4f4cf4610a6df7aa967434e539a247 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 24 Jul 2020 10:15:13 +0200 Subject: [PATCH] Added default compose font --- .../eu/faircode/email/FragmentCompose.java | 4 ++- .../faircode/email/FragmentOptionsSend.java | 31 ++++++++++++++++++- .../java/eu/faircode/email/MessageHelper.java | 8 +++++ .../main/res/layout/fragment_options_send.xml | 24 +++++++++++++- app/src/main/res/values/strings.xml | 1 + 5 files changed, 65 insertions(+), 3 deletions(-) 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