@ -901,24 +901,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
// Text size
if ( textSize ! = 0 ) {
float fz_sender = ( font_size_sender = = null ? textSize : font_size_sender ) * ( message . unseen > 0 ? 1.1f : 1f ) ;
float fz_subject = ( font_size_subject = = null ? textSize : font_size_subject ) * 0.9f ;
tvFrom . setTextSize ( TypedValue . COMPLEX_UNIT_PX , fz_sender ) ;
tvSubject . setTextSize ( TypedValue . COMPLEX_UNIT_PX , fz_subject ) ;
tvKeywords . setTextSize ( TypedValue . COMPLEX_UNIT_PX , textSize * 0.9f ) ;
tvFolder . setTextSize ( TypedValue . COMPLEX_UNIT_PX , textSize * 0.9f ) ;
tvLabels . setTextSize ( TypedValue . COMPLEX_UNIT_PX , textSize * 0.9f ) ;
tvPreview . setTextSize ( TypedValue . COMPLEX_UNIT_PX , textSize * 0.9f ) ;
if ( avatars ) {
int px = Math . round ( fz_sender + fz_subject + ( compact ? 0 : textSize * 0.9f ) ) ;
ViewGroup . LayoutParams lparams = ibAvatar . getLayoutParams ( ) ;
if ( lparams . width ! = px | | lparams . height ! = px ) {
lparams . width = px ;
lparams . height = px ;
ibAvatar . requestLayout ( ) ;
}
}
}
// Selected / disabled
@ -959,27 +945,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvError . setAlpha ( dim ? Helper . LOW_LIGHT : 1.0f ) ;
}
// Unseen
Typeface typeface = ( message . unseen > 0 ? Typeface . DEFAULT_BOLD : Typeface . DEFAULT ) ;
tvFrom . setTypeface ( typeface ) ;
tvSize . setTypeface ( typeface ) ;
tvTime . setTypeface ( typeface ) ;
if ( subject_italic )
if ( message . unseen > 0 )
tvSubject . setTypeface ( null , Typeface . BOLD_ITALIC ) ;
else
tvSubject . setTypeface ( null , Typeface . ITALIC ) ;
else
tvSubject . setTypeface ( typeface ) ;
tvCount . setTypeface ( typeface ) ;
int colorUnseen = ( message . unseen > 0 ? colorUnread : colorRead ) ;
if ( ! Objects . equals ( tvFrom . getTag ( ) , colorUnseen ) ) {
tvFrom . setTag ( colorUnseen ) ;
tvFrom . setTextColor ( colorUnseen ) ;
tvSize . setTextColor ( colorUnseen ) ;
tvTime . setTextColor ( colorUnseen ) ;
}
bindSeen ( message ) ;
// Account color
int colorBackground =
@ -1382,6 +1348,46 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
pbCalendarWait . setVisibility ( View . GONE ) ;
}
private void bindSeen ( TupleMessageEx message ) {
if ( textSize ! = 0 ) {
float fz_sender = ( font_size_sender = = null ? textSize : font_size_sender ) * ( message . unseen > 0 ? 1.1f : 1f ) ;
float fz_subject = ( font_size_subject = = null ? textSize : font_size_subject ) * 0.9f ;
tvFrom . setTextSize ( TypedValue . COMPLEX_UNIT_PX , fz_sender ) ;
tvSubject . setTextSize ( TypedValue . COMPLEX_UNIT_PX , fz_subject ) ;
if ( avatars ) {
int px = Math . round ( fz_sender + fz_subject + ( compact ? 0 : textSize * 0.9f ) ) ;
ViewGroup . LayoutParams lparams = ibAvatar . getLayoutParams ( ) ;
if ( lparams . width ! = px | | lparams . height ! = px ) {
lparams . width = px ;
lparams . height = px ;
ibAvatar . requestLayout ( ) ;
}
}
}
Typeface typeface = ( message . unseen > 0 ? Typeface . DEFAULT_BOLD : Typeface . DEFAULT ) ;
tvFrom . setTypeface ( typeface ) ;
tvSize . setTypeface ( typeface ) ;
tvTime . setTypeface ( typeface ) ;
if ( subject_italic )
if ( message . unseen > 0 )
tvSubject . setTypeface ( null , Typeface . BOLD_ITALIC ) ;
else
tvSubject . setTypeface ( null , Typeface . ITALIC ) ;
else
tvSubject . setTypeface ( typeface ) ;
tvCount . setTypeface ( typeface ) ;
int colorUnseen = ( message . unseen > 0 ? colorUnread : colorRead ) ;
if ( ! Objects . equals ( tvFrom . getTag ( ) , colorUnseen ) ) {
tvFrom . setTag ( colorUnseen ) ;
tvFrom . setTextColor ( colorUnseen ) ;
tvSize . setTextColor ( colorUnseen ) ;
tvTime . setTextColor ( colorUnseen ) ;
}
}
private void bindFlagged ( TupleMessageEx message , boolean expanded ) {
boolean pro = ActivityBilling . isPro ( context ) ;
boolean flagged = ( message . count - message . unflagged ) > 0 ;
@ -3048,7 +3054,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
} else {
message . ui_seen = ! message . ui_seen ;
message . unseen = ( message . ui_seen ? 0 : message . count ) ;
bind To( message , fals e) ;
bind Seen( messag e) ;
Bundle args = new Bundle ( ) ;
args . putLong ( "id" , message . id ) ;
@ -3529,16 +3535,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
else {
boolean expanded = ! properties . getValue ( "expanded" , message . id ) ;
// Prevent flicker
if ( expanded & & message . accountAutoSeen & & ! message . folderReadOnly ) {
message . unseen = 0 ;
message . ui_seen = true ;
message . visible_unseen = 0 ;
message . ui_unsnoozed = false ;
}
properties . setValue ( "expanded" , message . id , expanded ) ;
bindTo ( message , expanded ) ;
properties . setExpanded ( message , expanded ) ;
// Needed to scroll to item after collapsing other items
@ -4288,10 +4284,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
if ( amessage = = null | | ! amessage . id . equals ( id ) )
return ;
properties . setExpanded ( message , false ) ;
message . ui_seen = args . getBoolean ( "seen" ) ;
message . unseen = ( message . ui_seen ? 0 : message . count ) ;
bindTo ( message , false ) ;
properties. setExpanded ( message , false ) ;
}
@Override