mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-01 22:56:33 +02:00
Show colored keywords in addresses section
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user