From b3045c0a9e6377c2ca4359bbf7d504e02073e859 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 24 Jul 2021 09:46:56 +0200 Subject: [PATCH] Added code style menu --- .../java/eu/faircode/email/StyleHelper.java | 22 +++++++++++++++++-- app/src/main/res/menu/popup_style.xml | 11 +++++++++- app/src/main/res/values/strings.xml | 1 + 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index eafb26f99e..63925efc13 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -176,6 +176,8 @@ public class StyleHelper { IndentSpan[] indents = edit.getSpans(start, end, IndentSpan.class); popupMenu.getMenu().findItem(R.id.menu_style_indentation_decrease).setEnabled(indents.length > 0); + popupMenu.getMenu().findItem(R.id.menu_style_code).setEnabled(BuildConfig.DEBUG); + popupMenu.insertIcons(context); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @@ -206,6 +208,8 @@ public class StyleHelper { return setIndentation(item); } else if (groupId == R.id.group_style_strikethrough) { return setStrikeThrough(item); + } else if (groupId == R.id.group_style_code) { + return setCode(item); } else if (groupId == R.id.group_style_clear) { return clear(item); } @@ -221,12 +225,16 @@ public class StyleHelper { Float size; if (item.getItemId() == R.id.menu_style_size_small) - size = 0.8f; + size = HtmlHelper.FONT_SMALL; else if (item.getItemId() == R.id.menu_style_size_large) - size = 1.25f; + size = HtmlHelper.FONT_LARGE; else size = null; + return _setSize(size); + } + + private boolean _setSize(Float size) { RelativeSizeSpan[] spans = edit.getSpans(start, end, RelativeSizeSpan.class); for (RelativeSizeSpan span : spans) { int s = edit.getSpanStart(span); @@ -483,6 +491,10 @@ public class StyleHelper { String[] names = anchor.getResources().getStringArray(R.array.fontNameValues); String face = (id < names.length ? names[id] : null); + return _setFont(face); + } + + private boolean _setFont(String face) { TypefaceSpan[] spans = edit.getSpans(start, end, TypefaceSpan.class); for (TypefaceSpan span : spans) { int s = edit.getSpanStart(span); @@ -604,6 +616,12 @@ public class StyleHelper { return true; } + private boolean setCode(MenuItem item) { + _setSize(HtmlHelper.FONT_SMALL); + _setFont("monospace"); + return true; + } + private boolean clear(MenuItem item) { Log.breadcrumb("style", "action", "clear"); diff --git a/app/src/main/res/menu/popup_style.xml b/app/src/main/res/menu/popup_style.xml index 7a9592b34e..2b0818b9ae 100644 --- a/app/src/main/res/menu/popup_style.xml +++ b/app/src/main/res/menu/popup_style.xml @@ -142,8 +142,17 @@ + + + + Block quote Indentation Strikethrough + Code Clear formatting Insert link