diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 0f88a569a1..f6522902fb 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -402,13 +402,17 @@ public class AdapterMessage extends RecyclerView.Adapter 0 ? colorUnread : colorRead); - tvFrom.setTextColor(colorUnseen); - tvSize.setTextColor(colorUnseen); - tvTime.setTextColor(colorUnseen); - tvSubject.setTextColor(colorRead); + if (tvFrom.getTag() == null || (int) tvFrom.getTag() != colorUnseen) { + tvFrom.setTag(colorUnseen); + tvFrom.setTextColor(colorUnseen); + tvSize.setTextColor(colorUnseen); + tvTime.setTextColor(colorUnseen); + } // Account color + int colorBackground = + (message.accountColor == null || !ActivityBilling.isPro(context) + ? colorSeparator : message.accountColor); vwColor.setVisibility(View.VISIBLE); - vwColor.setBackgroundColor(message.accountColor == null || !ActivityBilling.isPro(context) - ? colorSeparator : message.accountColor); + if (vwColor.getTag() == null || (int) vwColor.getTag() != colorBackground) { + vwColor.setTag(colorBackground); + vwColor.setBackgroundColor(colorBackground); + } // Expander - ibExpander.setImageLevel(expanded ? 0 /* less */ : 1 /* more */); + if (ibExpander.getTag() == null || (boolean) ibExpander.getTag() != expanded) { + ibExpander.setTag(expanded); + ibExpander.setImageLevel(expanded ? 0 /* less */ : 1 /* more */); + } if (viewType == ViewType.THREAD) ibExpander.setVisibility(EntityFolder.DRAFTS.equals(message.folderType) ? View.INVISIBLE : View.VISIBLE); else @@ -788,17 +802,22 @@ public class AdapterMessage extends RecyclerView.Adapter 0 + icon = (message.drafts > 0 ? R.drawable.baseline_edit_24 : EntityFolder.getIcon(message.folderType)); ivType.setVisibility(message.drafts > 0 || (viewType == ViewType.UNIFIED && type == null && !inbox) || (viewType == ViewType.THREAD && EntityFolder.SENT.equals(message.folderType)) ? View.VISIBLE : View.GONE); } + if (ivType.getTag() == null || (int) ivType.getTag() != icon) { + ivType.setTag(icon); + ivType.setImageResource(icon); + } ivPriority.setVisibility(EntityMessage.PRIORITIY_HIGH.equals(message.priority) ? View.VISIBLE : View.GONE); ibAuth.setVisibility(authentication && !authenticated ? View.VISIBLE : View.GONE); @@ -832,7 +851,11 @@ public class AdapterMessage extends RecyclerView.Adapter