diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index b1842ccf84..adda8e95a0 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -113,7 +113,7 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static androidx.core.text.HtmlCompat.TO_HTML_PARAGRAPH_LINES_CONSECUTIVE; +import static androidx.core.text.HtmlCompat.TO_HTML_PARAGRAPH_LINES_INDIVIDUAL; import static org.w3c.css.sac.Condition.SAC_CLASS_CONDITION; public class HtmlHelper { @@ -769,7 +769,7 @@ public class HtmlHelper { // Lists // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li - if (!view) { + if (!view && !BuildConfig.DEBUG) { for (Element li : document.select("li")) { li.tagName("span"); Element parent = li.parent(); @@ -1702,6 +1702,9 @@ public class HtmlHelper { } static void convertLists(Document document) { + if (BuildConfig.DEBUG) + return; + for (Element span : document.select("span")) { // Skip signature and referenced message boolean body = true; @@ -2301,7 +2304,7 @@ public class HtmlHelper { static String toHtml(Spanned spanned, Context context) { HtmlEx converter = new HtmlEx(context); - String html = converter.toHtml(spanned, TO_HTML_PARAGRAPH_LINES_CONSECUTIVE); + String html = converter.toHtml(spanned, TO_HTML_PARAGRAPH_LINES_INDIVIDUAL); // @Google: why convert size to and from in a different way? Document doc = JsoupEx.parse(html); diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index 716c685237..755ddd1a88 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -6,6 +6,7 @@ import android.content.DialogInterface; import android.graphics.Typeface; import android.text.SpannableString; import android.text.Spanned; +import android.text.style.BulletSpan; import android.text.style.ForegroundColorSpan; import android.text.style.ImageSpan; import android.text.style.RelativeSizeSpan; @@ -13,7 +14,6 @@ import android.text.style.StyleSpan; import android.text.style.TypefaceSpan; import android.text.style.URLSpan; import android.text.style.UnderlineSpan; -import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.inputmethod.InputMethodManager; @@ -96,8 +96,8 @@ public class StyleHelper { String[] fontNames = anchor.getResources().getStringArray(R.array.fontNameNames); for (int i = 0; i < fontNames.length; i++) - popupMenu.getMenu().add(R.id.group_style_font, i, 3, fontNames[i]); - popupMenu.getMenu().add(R.id.group_style_font, fontNames.length, 3, R.string.title_style_font_default); + popupMenu.getMenu().add(R.id.group_style_font, i, 4, fontNames[i]); + popupMenu.getMenu().add(R.id.group_style_font, fontNames.length, 4, R.string.title_style_font_default); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override @@ -107,6 +107,8 @@ public class StyleHelper { return setSize(item); case R.id.group_style_color: return setColor(item); + case R.id.group_style_list: + return setList(item); case R.id.group_style_font: return setFont(item); case R.id.group_style_clear: @@ -190,6 +192,27 @@ public class StyleHelper { etBody.setSelection(s, e); } + private boolean setList(MenuItem item) { + BulletSpan[] spans = t.getSpans(s, e, BulletSpan.class); + for (BulletSpan span : spans) + t.removeSpan(span); + + int i = s; + int j = s + 1; + while (j < e) { + if (t.charAt(j) == '\n') { + t.setSpan(new BulletSpan(), i, j + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE | Spanned.SPAN_PARAGRAPH); + i = j + 1; + } + j++; + } + + etBody.setText(t); + etBody.setSelection(s, e); + + return true; + } + private boolean setFont(MenuItem item) { TypefaceSpan[] spans = t.getSpans(s, e, TypefaceSpan.class); for (TypefaceSpan span : spans) diff --git a/app/src/main/res/menu/popup_style.xml b/app/src/main/res/menu/popup_style.xml index ebe222bae2..2481eb05dc 100644 --- a/app/src/main/res/menu/popup_style.xml +++ b/app/src/main/res/menu/popup_style.xml @@ -24,13 +24,21 @@ android:title="@string/title_style_color" /> + + + + + android:orderInCategory="4" /> + android:orderInCategory="5"> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 37c5c058c3..4cd6fd35b3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -916,6 +916,7 @@ Font Default Color … + Create list Clear formatting Insert link