Show colored keywords in addresses section

pull/175/head
M66B 5 years ago
parent 48930d2186
commit 07f91927fa

@ -921,26 +921,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvSubject.setText(message.subject);
if (keywords_header) {
SpannableStringBuilder keywords = new SpannableStringBuilder();
for (int i = 0; i < message.keywords.length; i++) {
String k = message.keywords[i].toLowerCase(Locale.ROOT);
if (!IMAP_KEYWORDS_BLACKLIST.contains(k)) {
if (keywords.length() > 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<AdapterMessage.ViewHold
tvFlags.setText(message.flags);
// Keywords
tvKeywordsEx.setVisibility(show_addresses && message.keywords.length > 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<AdapterMessage.ViewHold
}.execute(context, owner, args, "message:raw");
}
private SpannableStringBuilder getKeywords(TupleMessageEx message) {
SpannableStringBuilder keywords = new SpannableStringBuilder();
for (int i = 0; i < message.keywords.length; i++) {
String k = message.keywords[i].toLowerCase(Locale.ROOT);
if (!IMAP_KEYWORDS_BLACKLIST.contains(k)) {
if (keywords.length() > 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<Long> getItemDetails(@NonNull MotionEvent motionEvent) {
return new ItemDetailsMessage(this);
}

Loading…
Cancel
Save