diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index 18c389bbdc..dc7d29c66e 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -115,6 +115,7 @@ public class StyleHelper { R.id.menu_style_spell_check, R.id.menu_style_password, R.id.menu_style_code, + R.id.menu_style_reverse, R.id.menu_style_clear, R.id.menu_style_settings }; @@ -149,7 +150,7 @@ public class StyleHelper { v.setVisibility( !BuildConfig.PLAY_STORE_RELEASE && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? View.VISIBLE : View.GONE); - else if (id == R.id.menu_style_code) + else if (id == R.id.menu_style_code || id == R.id.menu_style_reverse) v.setVisibility(BuildConfig.DEBUG ? View.VISIBLE : View.GONE); } @@ -465,6 +466,8 @@ public class StyleHelper { setSize(etBody, start, end, HtmlHelper.FONT_SMALL, keep_selection); setFont(etBody, start, end, "monospace", keep_selection); return true; + } else if (itemId == R.id.menu_style_reverse) { + return reverse(etBody, start, end); } else if (itemId == R.id.menu_link) return setLink(etBody, start, end, args); else if (itemId == R.id.menu_style_clear) @@ -1334,6 +1337,17 @@ public class StyleHelper { return true; } + static boolean reverse(EditText etBody, int start, int end) { + Log.breadcrumb("style", "action", "reverse"); + + Editable edit = etBody.getText(); + List lines = new ArrayList<>(Arrays.asList(edit.subSequence(start, end).toString().split("\n"))); + Collections.reverse(lines); + edit.replace(start, end, TextUtils.join("\n", lines)); + + return true; + } + static boolean setLink(EditText etBody, int start, int end, Object... args) { Log.breadcrumb("style", "action", "link"); diff --git a/app/src/main/res/drawable/twotone_expand_24.xml b/app/src/main/res/drawable/twotone_expand_24.xml new file mode 100644 index 0000000000..e21ea4913e --- /dev/null +++ b/app/src/main/res/drawable/twotone_expand_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/include_style_bar.xml b/app/src/main/res/layout/include_style_bar.xml index 682b33412b..2fdbd4d639 100644 --- a/app/src/main/res/layout/include_style_bar.xml +++ b/app/src/main/res/layout/include_style_bar.xml @@ -329,6 +329,21 @@ app:srcCompat="@drawable/twotone_code_24" app:tint="@color/action_foreground" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3768b27fab..75922e4098 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1570,6 +1570,7 @@ Superscript Strikethrough Code + Reverse Password protect Protected content Text too long