|
|
|
@ -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);
|
|
|
|
|
}
|
|
|
|
|