diff --git a/app/src/main/java/eu/faircode/email/EntityAnswer.java b/app/src/main/java/eu/faircode/email/EntityAnswer.java index 07e0e563dc..2a8747cc9c 100644 --- a/app/src/main/java/eu/faircode/email/EntityAnswer.java +++ b/app/src/main/java/eu/faircode/email/EntityAnswer.java @@ -209,29 +209,29 @@ public class EntityAnswer implements Serializable { continue; order++; - SpannableStringBuilder name = new SpannableStringBuilder(answer.name); + SpannableStringBuilder ssb = new SpannableStringBuilder(answer.name); if (answer.name != null && answer.color != null) { int first = answer.name.codePointAt(0); int count = Character.charCount(first); - name.setSpan(new ForegroundColorSpan(answer.color), 0, count, 0); - name.setSpan(new StyleSpan(Typeface.BOLD), 0, count, 0); - name.setSpan(new RelativeSizeSpan(HtmlHelper.FONT_LARGE), 0, count, 0); + ssb.setSpan(new ForegroundColorSpan(answer.color), 0, count, 0); + ssb.setSpan(new StyleSpan(Typeface.BOLD), 0, count, 0); + ssb.setSpan(new RelativeSizeSpan(HtmlHelper.FONT_LARGE), 0, count, 0); } if (grouped && answer.applied > 0) { - name.append(" (").append(NF.format(answer.applied)).append(")"); - name.setSpan(new RelativeSizeSpan(HtmlHelper.FONT_SMALL), - answer.name.length() + 1, name.length(), 0); + ssb.append(" (").append(NF.format(answer.applied)).append(")"); + ssb.setSpan(new RelativeSizeSpan(HtmlHelper.FONT_SMALL), + answer.name.length() + 1, ssb.length(), 0); } MenuItem item; if (answer.group == null) - item = main.add(Menu.NONE, order, order++, name); + item = main.add(Menu.NONE, order, order++, ssb); else { SubMenu smenu = map.get(answer.group); item = smenu.add(answer.applied > 0 ? Menu.FIRST : Menu.NONE, - smenu.size(), smenu.size() + 1, name); + smenu.size(), smenu.size() + 1, ssb); } item.setIntent(new Intent().putExtra("id", answer.id)); } @@ -303,6 +303,12 @@ public class EntityAnswer implements Serializable { for (EntityAnswer answer : favorites) { SpannableStringBuilder ssb = new SpannableStringBuilder(answer.name); + int first = answer.name.codePointAt(0); + int count = Character.charCount(first); + ssb.setSpan(new ForegroundColorSpan(answer.color), 0, count, 0); + ssb.setSpan(new StyleSpan(Typeface.BOLD), 0, count, 0); + ssb.setSpan(new RelativeSizeSpan(HtmlHelper.FONT_LARGE), 0, count, 0); + ImageSpan imageSpan = new CenteredImageSpan(icon); ssb.insert(0, "\uFFFC\u2002"); // object replacement character, en space ssb.setSpan(imageSpan, 0, 1, 0); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index fc492c8993..beef589158 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -2911,8 +2911,16 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. if (data.answers != null) { int order = 100; for (EntityAnswer answer : data.answers) { + SpannableStringBuilder ssb = new SpannableStringBuilder(answer.name); + + int first = answer.name.codePointAt(0); + int count = Character.charCount(first); + ssb.setSpan(new ForegroundColorSpan(answer.color), 0, count, 0); + ssb.setSpan(new StyleSpan(Typeface.BOLD), 0, count, 0); + ssb.setSpan(new RelativeSizeSpan(HtmlHelper.FONT_LARGE), 0, count, 0); + order++; - popupMenu.getMenu().add(Menu.FIRST, order, order, answer.name) + popupMenu.getMenu().add(Menu.FIRST, order, order, ssb) .setIcon(R.drawable.twotone_star_24) .setIntent(new Intent().putExtra("id", answer.id)); }