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