diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index e62a26a042..27863ecaab 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -63,6 +63,7 @@ import android.text.format.DateUtils; import android.text.method.ArrowKeyMovementMethod; import android.text.method.LinkMovementMethod; import android.text.style.DynamicDrawableSpan; +import android.text.style.ForegroundColorSpan; import android.text.style.ImageSpan; import android.text.style.QuoteSpan; import android.text.style.URLSpan; @@ -179,6 +180,7 @@ public class AdapterMessage extends RecyclerView.Adapter keywords = new ArrayList<>(); + SpannableStringBuilder keywords = new SpannableStringBuilder(); for (String keyword : message.keywords) { String k = keyword.toLowerCase(); if (IMAP_KEYWORDS_WHITELIST.contains(k) || - !(k.startsWith("$") || IMAP_KEYWORDS_BLACKLIST.contains(k))) - keywords.add(keyword); + !(k.startsWith("$") || IMAP_KEYWORDS_BLACKLIST.contains(k))) { + if (keywords.length() > 0) + keywords.append(", "); + keywords.append(keyword); + + String key = "keyword." + keyword; + if (prefs.contains(key)) { + int len = keywords.length(); + int color = prefs.getInt(key, textColorSecondary); + keywords.setSpan( + new ForegroundColorSpan(color), + len - keyword.length(), len, + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } } - tvKeywords.setVisibility(keywords_header && keywords.size() > 0 ? View.VISIBLE : View.GONE); - tvKeywords.setText(TextUtils.join(" ", keywords)); + tvKeywords.setVisibility(keywords_header && keywords.length() > 0 ? View.VISIBLE : View.GONE); + tvKeywords.setText(keywords); // Line 3 int icon = (message.drafts > 0 @@ -1430,7 +1445,6 @@ public class AdapterMessage extends RecyclerView.Adapter