From 9740f296eee5a58aa1bf554b5c35c7ef3dae6612 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 1 Jun 2021 13:34:57 +0200 Subject: [PATCH] Added OpenDyslexic --- ATTRIBUTION.md | 1 + app/src/main/assets/ATTRIBUTION.md | 1 + .../java/eu/faircode/email/HtmlHelper.java | 9 ++------ .../java/eu/faircode/email/StyleHelper.java | 20 +++++++++++++++--- app/src/main/res/font/opendyslexic.xml | 9 ++++++++ app/src/main/res/font/opendyslexic_normal.ttf | Bin 0 -> 64776 bytes app/src/main/res/values/strings.xml | 3 +++ 7 files changed, 33 insertions(+), 10 deletions(-) create mode 100644 app/src/main/res/font/opendyslexic.xml create mode 100644 app/src/main/res/font/opendyslexic_normal.ttf diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index cc37144450..ab59d63da7 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -31,3 +31,4 @@ FairEmail uses: * [Compact Language Detector v3](https://github.com/google/cld3). Copyright 2016 Google Inc. All rights reserved. [Apache License 2.0](https://github.com/google/cld3/blob/master/LICENSE). * [POI-HMEF](https://poi.apache.org/components/hmef/index.html). Copyright © 2001-2020 The Apache Software Foundation. [Apache Software License v2](https://poi.apache.org/devel/guidelines.html#The+Licensing). * [GoSquared's Flag Icon Set](https://github.com/gosquared/flags). Copyright (c) 2017 Go Squared Ltd. [MIT License](https://github.com/gosquared/flags/blob/master/LICENSE.txt). +* [OpenDyslexic](https://github.com/antijingoist/opendyslexic). Copyright (c) 12/2012 - 2019. Copyright (c) 2019-07-29, Abbie Gonzalez. [SIL Open Font License 1.1](https://github.com/antijingoist/opendyslexic/blob/master/OFL.txt). diff --git a/app/src/main/assets/ATTRIBUTION.md b/app/src/main/assets/ATTRIBUTION.md index cc37144450..ab59d63da7 100644 --- a/app/src/main/assets/ATTRIBUTION.md +++ b/app/src/main/assets/ATTRIBUTION.md @@ -31,3 +31,4 @@ FairEmail uses: * [Compact Language Detector v3](https://github.com/google/cld3). Copyright 2016 Google Inc. All rights reserved. [Apache License 2.0](https://github.com/google/cld3/blob/master/LICENSE). * [POI-HMEF](https://poi.apache.org/components/hmef/index.html). Copyright © 2001-2020 The Apache Software Foundation. [Apache Software License v2](https://poi.apache.org/devel/guidelines.html#The+Licensing). * [GoSquared's Flag Icon Set](https://github.com/gosquared/flags). Copyright (c) 2017 Go Squared Ltd. [MIT License](https://github.com/gosquared/flags/blob/master/LICENSE.txt). +* [OpenDyslexic](https://github.com/antijingoist/opendyslexic). Copyright (c) 12/2012 - 2019. Copyright (c) 2019-07-29, Abbie Gonzalez. [SIL Open Font License 1.1](https://github.com/antijingoist/opendyslexic/blob/master/OFL.txt). diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 62ac062c1d..1dd691b2ca 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -54,7 +54,6 @@ import android.util.Patterns; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.FileProvider; -import androidx.core.content.res.ResourcesCompat; import androidx.core.graphics.ColorUtils; import androidx.core.util.PatternsCompat; import androidx.preference.PreferenceManager; @@ -2256,11 +2255,7 @@ public class HtmlHelper { } break; case "font-family": - String face = value.toLowerCase(Locale.ROOT); - if ("fairemail".equals(face)) { - Typeface typeface = ResourcesCompat.getFont(context, R.font.fantasy); - setSpan(ssb, new CustomTypefaceSpan(face, typeface), start, ssb.length()); - } else if ("wingdings".equals(face)) { + if ("wingdings".equalsIgnoreCase(value)) { for (int i = start; i < ssb.length(); i++) { int kar = ssb.charAt(i); if (kar >= 0x20 && kar < 0x20 + WINGDING_TO_UNICODE.length) { @@ -2271,7 +2266,7 @@ public class HtmlHelper { } } } else - setSpan(ssb, new TypefaceSpan(face), start, ssb.length()); + setSpan(ssb, StyleHelper.getTypefaceSpan(value, context), start, ssb.length()); break; case "text-decoration": if ("line-through".equals(value)) diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index 298e54c56e..e2b1b803f1 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -49,6 +49,7 @@ import android.view.View; import android.widget.EditText; import androidx.appcompat.widget.PopupMenu; +import androidx.core.content.res.ResourcesCompat; import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceManager; @@ -155,7 +156,7 @@ public class StyleHelper { SubMenu smenu = popupMenu.getMenu().findItem(R.id.menu_style_font).getSubMenu(); for (int i = 0; i < fontNameNames.length; i++) { SpannableStringBuilder ssb = new SpannableStringBuilder(fontNameNames[i]); - ssb.setSpan(new TypefaceSpan(fontNameValues[i]), 0, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + ssb.setSpan(getTypefaceSpan(fontNameValues[i], context), 0, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); smenu.add(R.id.group_style_font, i, 0, ssb); } smenu.add(R.id.group_style_font, fontNameNames.length, 0, R.string.title_style_font_default); @@ -412,11 +413,12 @@ public class StyleHelper { int f = edit.getSpanFlags(span); edit.removeSpan(span); splitSpan(edit, start, end, s, e, f, false, - new TypefaceSpan(span.getFamily()), new TypefaceSpan(span.getFamily())); + getTypefaceSpan(span.getFamily(), context), + getTypefaceSpan(span.getFamily(), context)); } if (face != null) - edit.setSpan(new TypefaceSpan(face), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + edit.setSpan(getTypefaceSpan(face, context), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); etBody.setText(edit); etBody.setSelection(start, end); @@ -761,5 +763,17 @@ public class StyleHelper { } } + static TypefaceSpan getTypefaceSpan(String family, Context context) { + String face = family.toLowerCase(Locale.ROOT); + if ("fairemail".equals(face)) { + Typeface typeface = ResourcesCompat.getFont(context, R.font.fantasy); + return new CustomTypefaceSpan(face, typeface); + } else if (face.contains("comic sans")) { + Typeface typeface = ResourcesCompat.getFont(context, R.font.opendyslexic); + return new CustomTypefaceSpan(face, typeface); + } else + return new TypefaceSpan(face); + } + //TextUtils.dumpSpans(text, new LogPrinter(android.util.Log.INFO, "FairEmail"), "afterTextChanged "); } diff --git a/app/src/main/res/font/opendyslexic.xml b/app/src/main/res/font/opendyslexic.xml new file mode 100644 index 0000000000..5b98f9ddf9 --- /dev/null +++ b/app/src/main/res/font/opendyslexic.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/opendyslexic_normal.ttf b/app/src/main/res/font/opendyslexic_normal.ttf new file mode 100644 index 0000000000000000000000000000000000000000..84ffc24678c792f446261a29581844d8359ffe36 GIT binary patch literal 64776 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 NxP4Sans-serif Monospace Fantasy + Fantasy + Dyslexia @@ -1900,6 +1902,7 @@ sans-serif monospace fantasy + comic sans 17BA15C1AF55D925F98B99CEA4375D4CDF4C174B