From 07f91927fa014161f1a4d80869deef264e193e27 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 26 Feb 2020 17:32:43 +0100 Subject: [PATCH] Show colored keywords in addresses section --- .../eu/faircode/email/AdapterMessage.java | 55 +++++++++++-------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 91d5267ee0..0f7ab70b87 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -921,26 +921,7 @@ public class AdapterMessage extends RecyclerView.Adapter 0) - keywords.append(" "); - - keywords.append(message.keywords[i]); - - if (message.keyword_colors != null && - message.keyword_colors[i] != null) { - int len = keywords.length(); - keywords.setSpan( - new ForegroundColorSpan(message.keyword_colors[i]), - len - message.keywords[i].length(), len, - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - } - } - + SpannableStringBuilder keywords = getKeywords(message); tvKeywords.setVisibility(keywords.length() > 0 ? View.VISIBLE : View.GONE); tvKeywords.setText(keywords); } else @@ -1394,8 +1375,15 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? View.VISIBLE : View.GONE); - tvKeywordsEx.setText(TextUtils.join(" ", message.keywords)); + if (keywords_header) { + tvKeywordsEx.setVisibility(show_addresses && message.keywords.length > 0 ? View.VISIBLE : View.GONE); + tvKeywordsEx.setText(TextUtils.join(" ", message.keywords)); + } else { + message.resolveKeywordColors(context); + SpannableStringBuilder keywords = getKeywords(message); + tvKeywordsEx.setVisibility(show_addresses && keywords.length() > 0 ? View.VISIBLE : View.GONE); + tvKeywordsEx.setText(keywords); + } // Headers if (show_headers && message.headers != null) @@ -4079,6 +4067,29 @@ public class AdapterMessage extends RecyclerView.Adapter 0) + keywords.append(" "); + + keywords.append(message.keywords[i]); + + if (message.keyword_colors != null && + message.keyword_colors[i] != null) { + int len = keywords.length(); + keywords.setSpan( + new ForegroundColorSpan(message.keyword_colors[i]), + len - message.keywords[i].length(), len, + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + } + } + return keywords; + } + ItemDetailsLookup.ItemDetails getItemDetails(@NonNull MotionEvent motionEvent) { return new ItemDetailsMessage(this); }