mirror of https://github.com/M66B/FairEmail.git
Message header layout improvements
This commit is contained in:
parent
ea6383b784
commit
feee6589aa
|
@ -154,7 +154,7 @@ repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
maven { url "https://repo1.maven.org/maven2/" }
|
maven { url "https://repo1.maven.org/maven2/" }
|
||||||
maven { url "https://jitpack.io" }
|
maven { url "https://jitpack.io" }
|
||||||
maven { url "https://oss.sonatype.org/content/repositories/snapshots"}
|
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations.all {
|
configurations.all {
|
||||||
|
|
|
@ -257,22 +257,20 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
private ImageButton ibExpander;
|
private ImageButton ibExpander;
|
||||||
private ImageView ibFlagged;
|
private ImageView ibFlagged;
|
||||||
private ImageView ivAvatar;
|
private ImageView ivAvatar;
|
||||||
|
private ImageView ivPriority;
|
||||||
|
private ImageView ibAuth;
|
||||||
private TextView tvFrom;
|
private TextView tvFrom;
|
||||||
private TextView tvSize;
|
private TextView tvSize;
|
||||||
private TextView tvTime;
|
private TextView tvTime;
|
||||||
private ImageView ivType;
|
private ImageView ivType;
|
||||||
private ImageView ivPriority;
|
|
||||||
private ImageView ibAuth;
|
|
||||||
private ImageView ibSnoozed;
|
private ImageView ibSnoozed;
|
||||||
private ImageView ivBrowsed;
|
|
||||||
private ImageView ivAnswered;
|
private ImageView ivAnswered;
|
||||||
private ImageView ivPlain;
|
|
||||||
private ImageView ivReceipt;
|
|
||||||
private ImageView ivAttachments;
|
private ImageView ivAttachments;
|
||||||
private TextView tvSubject;
|
private TextView tvSubject;
|
||||||
private TextView tvFolder;
|
private TextView tvFolder;
|
||||||
private TextView tvCount;
|
private TextView tvCount;
|
||||||
private ImageView ivThread;
|
private ImageView ivThread;
|
||||||
|
private TextView tvExpand;
|
||||||
private TextView tvPreview;
|
private TextView tvPreview;
|
||||||
private TextView tvError;
|
private TextView tvError;
|
||||||
private ImageButton ibHelp;
|
private ImageButton ibHelp;
|
||||||
|
@ -281,6 +279,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
|
|
||||||
private ImageButton ibExpanderAddress;
|
private ImageButton ibExpanderAddress;
|
||||||
|
|
||||||
|
private ImageView ivPlain;
|
||||||
|
private ImageView ivReceipt;
|
||||||
|
private ImageView ivBrowsed;
|
||||||
|
|
||||||
private ImageButton ibSearchContact;
|
private ImageButton ibSearchContact;
|
||||||
private ImageButton ibNotifyContact;
|
private ImageButton ibNotifyContact;
|
||||||
private ImageButton ibAddContact;
|
private ImageButton ibAddContact;
|
||||||
|
@ -293,6 +295,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
private TextView tvIdentityTitle;
|
private TextView tvIdentityTitle;
|
||||||
private TextView tvTimeExTitle;
|
private TextView tvTimeExTitle;
|
||||||
private TextView tvSizeExTitle;
|
private TextView tvSizeExTitle;
|
||||||
|
private TextView tvFolderExTitle;
|
||||||
|
|
||||||
private TextView tvFromEx;
|
private TextView tvFromEx;
|
||||||
private TextView tvTo;
|
private TextView tvTo;
|
||||||
|
@ -302,6 +305,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
private TextView tvIdentity;
|
private TextView tvIdentity;
|
||||||
private TextView tvTimeEx;
|
private TextView tvTimeEx;
|
||||||
private TextView tvSizeEx;
|
private TextView tvSizeEx;
|
||||||
|
private TextView tvFolderEx;
|
||||||
|
|
||||||
private TextView tvSubjectEx;
|
private TextView tvSubjectEx;
|
||||||
private TextView tvFlags;
|
private TextView tvFlags;
|
||||||
|
@ -372,19 +376,17 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
ibExpander = itemView.findViewById(R.id.ibExpander);
|
ibExpander = itemView.findViewById(R.id.ibExpander);
|
||||||
ibFlagged = itemView.findViewById(R.id.ibFlagged);
|
ibFlagged = itemView.findViewById(R.id.ibFlagged);
|
||||||
ivAvatar = itemView.findViewById(R.id.ivAvatar);
|
ivAvatar = itemView.findViewById(R.id.ivAvatar);
|
||||||
|
ivPriority = itemView.findViewById(R.id.ivPriority);
|
||||||
|
ibAuth = itemView.findViewById(R.id.ibAuth);
|
||||||
tvFrom = itemView.findViewById(subject_top ? R.id.tvSubject : R.id.tvFrom);
|
tvFrom = itemView.findViewById(subject_top ? R.id.tvSubject : R.id.tvFrom);
|
||||||
tvSize = itemView.findViewById(R.id.tvSize);
|
tvSize = itemView.findViewById(R.id.tvSize);
|
||||||
tvTime = itemView.findViewById(R.id.tvTime);
|
tvTime = itemView.findViewById(R.id.tvTime);
|
||||||
ivType = itemView.findViewById(R.id.ivType);
|
ivType = itemView.findViewById(R.id.ivType);
|
||||||
ivPriority = itemView.findViewById(R.id.ivPriority);
|
|
||||||
ibAuth = itemView.findViewById(R.id.ibAuth);
|
|
||||||
ibSnoozed = itemView.findViewById(R.id.ibSnoozed);
|
ibSnoozed = itemView.findViewById(R.id.ibSnoozed);
|
||||||
ivBrowsed = itemView.findViewById(R.id.ivBrowsed);
|
|
||||||
ivAnswered = itemView.findViewById(R.id.ivAnswered);
|
ivAnswered = itemView.findViewById(R.id.ivAnswered);
|
||||||
ivPlain = itemView.findViewById(R.id.ivPlain);
|
|
||||||
ivReceipt = itemView.findViewById(R.id.ivReceipt);
|
|
||||||
ivAttachments = itemView.findViewById(R.id.ivAttachments);
|
ivAttachments = itemView.findViewById(R.id.ivAttachments);
|
||||||
tvSubject = itemView.findViewById(subject_top ? R.id.tvFrom : R.id.tvSubject);
|
tvSubject = itemView.findViewById(subject_top ? R.id.tvFrom : R.id.tvSubject);
|
||||||
|
tvExpand = itemView.findViewById(R.id.tvExpand);
|
||||||
tvPreview = itemView.findViewById(R.id.tvPreview);
|
tvPreview = itemView.findViewById(R.id.tvPreview);
|
||||||
tvFolder = itemView.findViewById(R.id.tvFolder);
|
tvFolder = itemView.findViewById(R.id.tvFolder);
|
||||||
tvCount = itemView.findViewById(R.id.tvCount);
|
tvCount = itemView.findViewById(R.id.tvCount);
|
||||||
|
@ -419,6 +421,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
|
|
||||||
ibExpanderAddress = vsBody.findViewById(R.id.ibExpanderAddress);
|
ibExpanderAddress = vsBody.findViewById(R.id.ibExpanderAddress);
|
||||||
|
|
||||||
|
ivPlain = vsBody.findViewById(R.id.ivPlain);
|
||||||
|
ivReceipt = vsBody.findViewById(R.id.ivReceipt);
|
||||||
|
ivBrowsed = vsBody.findViewById(R.id.ivBrowsed);
|
||||||
|
|
||||||
ibSearchContact = vsBody.findViewById(R.id.ibSearchContact);
|
ibSearchContact = vsBody.findViewById(R.id.ibSearchContact);
|
||||||
ibNotifyContact = vsBody.findViewById(R.id.ibNotifyContact);
|
ibNotifyContact = vsBody.findViewById(R.id.ibNotifyContact);
|
||||||
ibAddContact = vsBody.findViewById(R.id.ibAddContact);
|
ibAddContact = vsBody.findViewById(R.id.ibAddContact);
|
||||||
|
@ -431,6 +437,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
tvIdentityTitle = vsBody.findViewById(R.id.tvIdentityTitle);
|
tvIdentityTitle = vsBody.findViewById(R.id.tvIdentityTitle);
|
||||||
tvTimeExTitle = vsBody.findViewById(R.id.tvTimeExTitle);
|
tvTimeExTitle = vsBody.findViewById(R.id.tvTimeExTitle);
|
||||||
tvSizeExTitle = vsBody.findViewById(R.id.tvSizeExTitle);
|
tvSizeExTitle = vsBody.findViewById(R.id.tvSizeExTitle);
|
||||||
|
tvFolderExTitle = vsBody.findViewById(R.id.tvFolderExTitle);
|
||||||
|
|
||||||
tvFromEx = vsBody.findViewById(R.id.tvFromEx);
|
tvFromEx = vsBody.findViewById(R.id.tvFromEx);
|
||||||
tvTo = vsBody.findViewById(R.id.tvTo);
|
tvTo = vsBody.findViewById(R.id.tvTo);
|
||||||
|
@ -441,6 +448,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
tvTimeEx = vsBody.findViewById(R.id.tvTimeEx);
|
tvTimeEx = vsBody.findViewById(R.id.tvTimeEx);
|
||||||
tvSizeEx = vsBody.findViewById(R.id.tvSizeEx);
|
tvSizeEx = vsBody.findViewById(R.id.tvSizeEx);
|
||||||
|
|
||||||
|
tvFolderEx = vsBody.findViewById(R.id.tvFolderEx);
|
||||||
tvSubjectEx = vsBody.findViewById(R.id.tvSubjectEx);
|
tvSubjectEx = vsBody.findViewById(R.id.tvSubjectEx);
|
||||||
tvFlags = vsBody.findViewById(R.id.tvFlags);
|
tvFlags = vsBody.findViewById(R.id.tvFlags);
|
||||||
tvKeywords = vsBody.findViewById(R.id.tvKeywords);
|
tvKeywords = vsBody.findViewById(R.id.tvKeywords);
|
||||||
|
@ -632,22 +640,20 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
ibExpander.setVisibility(View.GONE);
|
ibExpander.setVisibility(View.GONE);
|
||||||
ibFlagged.setVisibility(View.GONE);
|
ibFlagged.setVisibility(View.GONE);
|
||||||
ivAvatar.setVisibility(View.GONE);
|
ivAvatar.setVisibility(View.GONE);
|
||||||
|
ivPriority.setVisibility(View.GONE);
|
||||||
|
ibAuth.setVisibility(View.GONE);
|
||||||
tvFrom.setText(null);
|
tvFrom.setText(null);
|
||||||
tvSize.setText(null);
|
tvSize.setText(null);
|
||||||
tvTime.setText(null);
|
tvTime.setText(null);
|
||||||
ivType.setVisibility(View.GONE);
|
ivType.setVisibility(View.GONE);
|
||||||
ivPriority.setVisibility(View.GONE);
|
|
||||||
ibAuth.setVisibility(View.GONE);
|
|
||||||
ibSnoozed.setVisibility(View.GONE);
|
ibSnoozed.setVisibility(View.GONE);
|
||||||
ivBrowsed.setVisibility(View.GONE);
|
|
||||||
ivAnswered.setVisibility(View.GONE);
|
ivAnswered.setVisibility(View.GONE);
|
||||||
ivPlain.setVisibility(View.GONE);
|
|
||||||
ivReceipt.setVisibility(View.GONE);
|
|
||||||
ivAttachments.setVisibility(View.GONE);
|
ivAttachments.setVisibility(View.GONE);
|
||||||
tvSubject.setText(null);
|
tvSubject.setText(null);
|
||||||
tvFolder.setText(null);
|
tvFolder.setText(null);
|
||||||
tvCount.setText(null);
|
tvCount.setText(null);
|
||||||
ivThread.setVisibility(View.GONE);
|
ivThread.setVisibility(View.GONE);
|
||||||
|
tvExpand.setVisibility(View.GONE);
|
||||||
tvPreview.setVisibility(View.GONE);
|
tvPreview.setVisibility(View.GONE);
|
||||||
tvError.setVisibility(View.GONE);
|
tvError.setVisibility(View.GONE);
|
||||||
ibHelp.setVisibility(View.GONE);
|
ibHelp.setVisibility(View.GONE);
|
||||||
|
@ -661,6 +667,11 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
boolean outbox = EntityFolder.OUTBOX.equals(message.folderType);
|
boolean outbox = EntityFolder.OUTBOX.equals(message.folderType);
|
||||||
boolean outgoing = isOutgoing(message);
|
boolean outgoing = isOutgoing(message);
|
||||||
Address[] addresses = (outgoing && viewType != ViewType.THREAD ? message.to : message.senders);
|
Address[] addresses = (outgoing && viewType != ViewType.THREAD ? message.to : message.senders);
|
||||||
|
boolean authenticated =
|
||||||
|
!(Boolean.FALSE.equals(message.dkim) ||
|
||||||
|
Boolean.FALSE.equals(message.spf) ||
|
||||||
|
Boolean.FALSE.equals(message.dmarc) ||
|
||||||
|
Boolean.FALSE.equals(message.mx));
|
||||||
boolean expanded = (viewType == ViewType.THREAD && properties.getValue("expanded", message.id));
|
boolean expanded = (viewType == ViewType.THREAD && properties.getValue("expanded", message.id));
|
||||||
|
|
||||||
// Text size
|
// Text size
|
||||||
|
@ -694,17 +705,14 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
boolean dim = (message.duplicate || EntityFolder.TRASH.equals(message.folderType));
|
boolean dim = (message.duplicate || EntityFolder.TRASH.equals(message.folderType));
|
||||||
ibFlagged.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
ibFlagged.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
ivAvatar.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
ivAvatar.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
|
ivPriority.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
|
ibAuth.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
tvFrom.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
tvFrom.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
tvSize.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
tvSize.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
tvTime.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
tvTime.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
ivType.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
ivType.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
ivPriority.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
|
||||||
ibAuth.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
|
||||||
ibSnoozed.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
ibSnoozed.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
ivBrowsed.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
|
||||||
ivAnswered.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
ivAnswered.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
ivPlain.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
|
||||||
ivReceipt.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
|
||||||
ivAttachments.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
ivAttachments.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
tvSubject.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
tvSubject.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
tvFolder.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
tvFolder.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||||
|
@ -760,11 +768,12 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
ivAvatar.setVisibility(avatars ? View.INVISIBLE : View.GONE);
|
ivAvatar.setVisibility(avatars ? View.INVISIBLE : View.GONE);
|
||||||
|
|
||||||
// Line 1
|
// Line 1
|
||||||
|
ivPriority.setVisibility(EntityMessage.PRIORITIY_HIGH.equals(message.priority) ? View.VISIBLE : View.GONE);
|
||||||
|
ibAuth.setVisibility(authentication && !authenticated ? View.VISIBLE : View.GONE);
|
||||||
tvFrom.setText(MessageHelper.formatAddresses(addresses, name_email, false));
|
tvFrom.setText(MessageHelper.formatAddresses(addresses, name_email, false));
|
||||||
tvFrom.setPaintFlags(tvFrom.getPaintFlags() & ~Paint.UNDERLINE_TEXT_FLAG);
|
tvFrom.setPaintFlags(tvFrom.getPaintFlags() & ~Paint.UNDERLINE_TEXT_FLAG);
|
||||||
Long size = ("size".equals(sort) ? message.totalSize : message.size);
|
tvSize.setText(message.totalSize == null ? null : Helper.humanReadableByteCount(message.totalSize, true));
|
||||||
tvSize.setText(size == null ? null : Helper.humanReadableByteCount(size, true));
|
tvSize.setVisibility(message.totalSize != null && "size".equals(sort) ? View.VISIBLE : View.GONE);
|
||||||
tvSize.setVisibility(size == null || (message.content && !"size".equals(sort)) ? View.GONE : View.VISIBLE);
|
|
||||||
tvTime.setText(date && "time".equals(sort)
|
tvTime.setText(date && "time".equals(sort)
|
||||||
? TF.format(message.received)
|
? TF.format(message.received)
|
||||||
: Helper.getRelativeTimeSpanString(context, message.received));
|
: Helper.getRelativeTimeSpanString(context, message.received));
|
||||||
|
@ -772,12 +781,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
// Line 2
|
// Line 2
|
||||||
tvSubject.setText(message.subject);
|
tvSubject.setText(message.subject);
|
||||||
|
|
||||||
boolean authenticated =
|
|
||||||
!(Boolean.FALSE.equals(message.dkim) ||
|
|
||||||
Boolean.FALSE.equals(message.spf) ||
|
|
||||||
Boolean.FALSE.equals(message.dmarc) ||
|
|
||||||
Boolean.FALSE.equals(message.mx));
|
|
||||||
|
|
||||||
// Line 3
|
// Line 3
|
||||||
int icon = (message.drafts > 0
|
int icon = (message.drafts > 0
|
||||||
? R.drawable.baseline_edit_24
|
? R.drawable.baseline_edit_24
|
||||||
|
@ -797,13 +800,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
message.ui_snoozed != null && message.ui_snoozed == Long.MAX_VALUE
|
message.ui_snoozed != null && message.ui_snoozed == Long.MAX_VALUE
|
||||||
? R.drawable.baseline_visibility_off_24 : R.drawable.baseline_timelapse_24);
|
? R.drawable.baseline_visibility_off_24 : R.drawable.baseline_timelapse_24);
|
||||||
|
|
||||||
ivPriority.setVisibility(EntityMessage.PRIORITIY_HIGH.equals(message.priority) ? View.VISIBLE : View.GONE);
|
|
||||||
ibAuth.setVisibility(authentication && !authenticated ? View.VISIBLE : View.GONE);
|
|
||||||
ibSnoozed.setVisibility(message.ui_snoozed == null ? View.GONE : View.VISIBLE);
|
ibSnoozed.setVisibility(message.ui_snoozed == null ? View.GONE : View.VISIBLE);
|
||||||
ivBrowsed.setVisibility(message.ui_browsed ? View.VISIBLE : View.GONE);
|
|
||||||
ivAnswered.setVisibility(message.ui_answered ? View.VISIBLE : View.GONE);
|
ivAnswered.setVisibility(message.ui_answered ? View.VISIBLE : View.GONE);
|
||||||
ivPlain.setVisibility(message.plain_only != null && message.plain_only ? View.VISIBLE : View.GONE);
|
|
||||||
ivReceipt.setVisibility(message.receipt_request != null && message.receipt_request ? View.VISIBLE : View.GONE);
|
|
||||||
ivAttachments.setVisibility(message.attachments > 0 ? View.VISIBLE : View.GONE);
|
ivAttachments.setVisibility(message.attachments > 0 ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
if (viewType == ViewType.FOLDER)
|
if (viewType == ViewType.FOLDER)
|
||||||
|
@ -813,9 +811,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
else
|
else
|
||||||
tvFolder.setText(message.accountName + "/" + message.getFolderName(context));
|
tvFolder.setText(message.accountName + "/" + message.getFolderName(context));
|
||||||
|
|
||||||
tvFolder.setVisibility(compact &&
|
tvFolder.setVisibility(compact ? View.GONE : View.VISIBLE);
|
||||||
((viewType == ViewType.FOLDER && !outbox) || (viewType == ViewType.UNIFIED && type == null && inbox))
|
|
||||||
? View.GONE : View.VISIBLE);
|
|
||||||
|
|
||||||
if (viewType == ViewType.THREAD || !threading) {
|
if (viewType == ViewType.THREAD || !threading) {
|
||||||
tvCount.setVisibility(View.GONE);
|
tvCount.setVisibility(View.GONE);
|
||||||
|
@ -828,6 +824,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
// Starred
|
// Starred
|
||||||
bindFlagged(message, expanded);
|
bindFlagged(message, expanded);
|
||||||
|
|
||||||
|
// Expand warning
|
||||||
|
bindExpandWarning(message, expanded);
|
||||||
|
|
||||||
// Message text preview
|
// Message text preview
|
||||||
int textColor = (contrast ? textColorPrimary : textColorSecondary);
|
int textColor = (contrast ? textColorPrimary : textColorSecondary);
|
||||||
if (tvPreview.getTag() == null || (int) tvPreview.getTag() != textColor) {
|
if (tvPreview.getTag() == null || (int) tvPreview.getTag() != textColor) {
|
||||||
|
@ -932,6 +931,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
grpAttachments.setVisibility(View.GONE);
|
grpAttachments.setVisibility(View.GONE);
|
||||||
grpImages.setVisibility(View.GONE);
|
grpImages.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
ivPlain.setVisibility(View.GONE);
|
||||||
|
ivReceipt.setVisibility(View.GONE);
|
||||||
|
ivBrowsed.setVisibility(View.GONE);
|
||||||
|
|
||||||
ibSearchContact.setVisibility(View.GONE);
|
ibSearchContact.setVisibility(View.GONE);
|
||||||
ibNotifyContact.setVisibility(View.GONE);
|
ibNotifyContact.setVisibility(View.GONE);
|
||||||
ibAddContact.setVisibility(View.GONE);
|
ibAddContact.setVisibility(View.GONE);
|
||||||
|
@ -944,6 +947,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
tvIdentityTitle.setVisibility(View.GONE);
|
tvIdentityTitle.setVisibility(View.GONE);
|
||||||
tvTimeExTitle.setVisibility(View.GONE);
|
tvTimeExTitle.setVisibility(View.GONE);
|
||||||
tvSizeExTitle.setVisibility(View.GONE);
|
tvSizeExTitle.setVisibility(View.GONE);
|
||||||
|
tvFolderExTitle.setVisibility(View.GONE);
|
||||||
|
|
||||||
tvFromEx.setVisibility(View.GONE);
|
tvFromEx.setVisibility(View.GONE);
|
||||||
tvTo.setVisibility(View.GONE);
|
tvTo.setVisibility(View.GONE);
|
||||||
|
@ -953,6 +957,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
tvIdentity.setVisibility(View.GONE);
|
tvIdentity.setVisibility(View.GONE);
|
||||||
tvTimeEx.setVisibility(View.GONE);
|
tvTimeEx.setVisibility(View.GONE);
|
||||||
tvSizeEx.setVisibility(View.GONE);
|
tvSizeEx.setVisibility(View.GONE);
|
||||||
|
tvFolderEx.setVisibility(View.GONE);
|
||||||
tvSubjectEx.setVisibility(View.GONE);
|
tvSubjectEx.setVisibility(View.GONE);
|
||||||
tvFlags.setVisibility(View.GONE);
|
tvFlags.setVisibility(View.GONE);
|
||||||
tvKeywords.setVisibility(View.GONE);
|
tvKeywords.setVisibility(View.GONE);
|
||||||
|
@ -1016,6 +1021,16 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
tvFrom.setPaintFlags(tvFrom.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
|
tvFrom.setPaintFlags(tvFrom.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void bindExpandWarning(TupleMessageEx message, boolean expanded) {
|
||||||
|
tvExpand.setText(
|
||||||
|
message.size == null ? null : context.getString(R.string.title_expand_warning,
|
||||||
|
Helper.humanReadableByteCount(message.size, true)));
|
||||||
|
tvExpand.setVisibility(
|
||||||
|
viewType == ViewType.THREAD && !expanded &&
|
||||||
|
message.size != null && !message.content && message.uid != null
|
||||||
|
? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
private void bindExpanded(final TupleMessageEx message, final boolean scroll) {
|
private void bindExpanded(final TupleMessageEx message, final boolean scroll) {
|
||||||
DB db = DB.getInstance(context);
|
DB db = DB.getInstance(context);
|
||||||
|
|
||||||
|
@ -1037,6 +1052,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
boolean hasTo = (message.to != null && message.to.length > 0);
|
boolean hasTo = (message.to != null && message.to.length > 0);
|
||||||
boolean hasChannel = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O);
|
boolean hasChannel = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O);
|
||||||
|
|
||||||
|
ivPlain.setVisibility(show_addresses && message.plain_only != null && message.plain_only ? View.VISIBLE : View.GONE);
|
||||||
|
ivReceipt.setVisibility(show_addresses && message.receipt_request != null && message.receipt_request ? View.VISIBLE : View.GONE);
|
||||||
|
ivBrowsed.setVisibility(show_addresses && message.ui_browsed ? View.VISIBLE : View.GONE);
|
||||||
|
|
||||||
ibSearchContact.setVisibility(show_addresses && (hasFrom || hasTo) ? View.VISIBLE : View.GONE);
|
ibSearchContact.setVisibility(show_addresses && (hasFrom || hasTo) ? View.VISIBLE : View.GONE);
|
||||||
ibNotifyContact.setVisibility(show_addresses && hasChannel && hasFrom ? View.VISIBLE : View.GONE);
|
ibNotifyContact.setVisibility(show_addresses && hasChannel && hasFrom ? View.VISIBLE : View.GONE);
|
||||||
ibAddContact.setVisibility(show_addresses && contacts && hasFrom ? View.VISIBLE : View.GONE);
|
ibAddContact.setVisibility(show_addresses && contacts && hasFrom ? View.VISIBLE : View.GONE);
|
||||||
|
@ -1114,6 +1133,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
.append(message.total == null ? "-" : Helper.humanReadableByteCount(message.total, true));
|
.append(message.total == null ? "-" : Helper.humanReadableByteCount(message.total, true));
|
||||||
tvSizeEx.setText(size.toString());
|
tvSizeEx.setText(size.toString());
|
||||||
|
|
||||||
|
tvFolderExTitle.setVisibility(show_addresses ? View.VISIBLE : View.GONE);
|
||||||
|
tvFolderEx.setVisibility(show_addresses ? View.VISIBLE : View.GONE);
|
||||||
|
tvFolderEx.setText(tvFolder.getText());
|
||||||
|
|
||||||
tvSubjectEx.setVisibility(show_addresses ? View.VISIBLE : View.GONE);
|
tvSubjectEx.setVisibility(show_addresses ? View.VISIBLE : View.GONE);
|
||||||
tvSubjectEx.setText(message.subject);
|
tvSubjectEx.setText(message.subject);
|
||||||
if (subject_italic)
|
if (subject_italic)
|
||||||
|
@ -2403,6 +2426,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
clearExpanded(message);
|
clearExpanded(message);
|
||||||
|
|
||||||
bindFlagged(message, expanded);
|
bindFlagged(message, expanded);
|
||||||
|
bindExpandWarning(message, expanded);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,36 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/ivPlain"
|
||||||
|
android:layout_width="21dp"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:contentDescription="@string/title_legend_plain_only"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/ibExpanderAddress"
|
||||||
|
app:srcCompat="@drawable/baseline_notes_24" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/ivReceipt"
|
||||||
|
android:layout_width="21dp"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:contentDescription="@string/title_legend_receipt"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/ivPlain"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/ibExpanderAddress"
|
||||||
|
app:srcCompat="@drawable/baseline_playlist_add_check_24" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/ivBrowsed"
|
||||||
|
android:layout_width="21dp"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:contentDescription="@string/title_legend_browsed"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/ivReceipt"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/ibExpanderAddress"
|
||||||
|
app:srcCompat="@drawable/baseline_playlist_add_24" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/ibExpanderAddress"
|
android:id="@+id/ibExpanderAddress"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -260,6 +290,30 @@
|
||||||
app:layout_constraintStart_toEndOf="@+id/barrier_addresses"
|
app:layout_constraintStart_toEndOf="@+id/barrier_addresses"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvTimeEx" />
|
app:layout_constraintTop_toBottomOf="@id/tvTimeEx" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvFolderExTitle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:text="@string/title_folder"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvSizeEx" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvFolderEx"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:layout_marginEnd="6dp"
|
||||||
|
android:text="Folder"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
|
android:textIsSelectable="true"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/barrier_addresses"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvSizeEx" />
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Barrier
|
<androidx.constraintlayout.widget.Barrier
|
||||||
android:id="@+id/barrier_addresses"
|
android:id="@+id/barrier_addresses"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -269,7 +323,8 @@
|
||||||
tvFromExTitle,tvToTitle,tvReplyToTitle,
|
tvFromExTitle,tvToTitle,tvReplyToTitle,
|
||||||
tvCcTitle,tvBccTitle,
|
tvCcTitle,tvBccTitle,
|
||||||
tvIdentityTitle,
|
tvIdentityTitle,
|
||||||
tvTimeExTitle,tvSizeExTitle" />
|
tvTimeExTitle,tvSizeExTitle,
|
||||||
|
tvFolderExTitle" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvSubjectEx"
|
android:id="@+id/tvSubjectEx"
|
||||||
|
@ -282,7 +337,7 @@
|
||||||
android:textIsSelectable="true"
|
android:textIsSelectable="true"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvSizeEx" />
|
app:layout_constraintTop_toBottomOf="@id/tvFolderEx" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvFlags"
|
android:id="@+id/tvFlags"
|
||||||
|
|
|
@ -56,6 +56,31 @@
|
||||||
app:layout_constraintTop_toBottomOf="@id/paddingTop"
|
app:layout_constraintTop_toBottomOf="@id/paddingTop"
|
||||||
app:srcCompat="@drawable/baseline_person_24" />
|
app:srcCompat="@drawable/baseline_person_24" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/ivPriority"
|
||||||
|
android:layout_width="21dp"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:contentDescription="@string/title_send_priority"
|
||||||
|
android:tint="@color/colorError"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/ivAvatar"
|
||||||
|
app:layout_constraintTop_toTopOf="@+id/tvFrom"
|
||||||
|
app:srcCompat="@drawable/baseline_priority_high_24" />
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/ibAuth"
|
||||||
|
android:layout_width="21dp"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||||
|
android:contentDescription="@string/title_legend_auth"
|
||||||
|
android:tint="@color/colorError"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/ivPriority"
|
||||||
|
app:layout_constraintTop_toTopOf="@+id/tvFrom"
|
||||||
|
app:srcCompat="@drawable/baseline_flag_24" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvFrom"
|
android:id="@+id/tvFrom"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -69,7 +94,7 @@
|
||||||
android:text="From"
|
android:text="From"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/tvSize"
|
app:layout_constraintEnd_toStartOf="@+id/tvSize"
|
||||||
app:layout_constraintStart_toEndOf="@id/ivAvatar"
|
app:layout_constraintStart_toEndOf="@id/ibAuth"
|
||||||
app:layout_constraintTop_toBottomOf="@id/paddingTop" />
|
app:layout_constraintTop_toBottomOf="@id/paddingTop" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -109,31 +134,6 @@
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
||||||
app:srcCompat="@drawable/baseline_edit_24" />
|
app:srcCompat="@drawable/baseline_edit_24" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivPriority"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_send_priority"
|
|
||||||
android:tint="@color/colorError"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
|
||||||
app:srcCompat="@drawable/baseline_priority_high_24" />
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/ibAuth"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
|
||||||
android:contentDescription="@string/title_legend_auth"
|
|
||||||
android:tint="@color/colorError"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivPriority"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
|
||||||
app:srcCompat="@drawable/baseline_flag_24" />
|
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/ibSnoozed"
|
android:id="@+id/ibSnoozed"
|
||||||
android:layout_width="21dp"
|
android:layout_width="21dp"
|
||||||
|
@ -142,21 +142,10 @@
|
||||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||||
android:contentDescription="@string/title_legend_snoozed"
|
android:contentDescription="@string/title_legend_snoozed"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
||||||
app:layout_constraintStart_toEndOf="@id/ibAuth"
|
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
||||||
app:srcCompat="@drawable/baseline_timelapse_24" />
|
app:srcCompat="@drawable/baseline_timelapse_24" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivBrowsed"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_legend_browsed"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ibSnoozed"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
|
||||||
app:srcCompat="@drawable/baseline_playlist_add_24" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/ivAnswered"
|
android:id="@+id/ivAnswered"
|
||||||
android:layout_width="21dp"
|
android:layout_width="21dp"
|
||||||
|
@ -164,32 +153,10 @@
|
||||||
android:layout_marginStart="6dp"
|
android:layout_marginStart="6dp"
|
||||||
android:contentDescription="@string/title_legend_answered"
|
android:contentDescription="@string/title_legend_answered"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
||||||
app:layout_constraintStart_toEndOf="@id/ivBrowsed"
|
app:layout_constraintStart_toEndOf="@id/ibSnoozed"
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
||||||
app:srcCompat="@drawable/baseline_reply_24" />
|
app:srcCompat="@drawable/baseline_reply_24" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivPlain"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_legend_plain_only"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivAnswered"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
|
||||||
app:srcCompat="@drawable/baseline_notes_24" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivReceipt"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_legend_receipt"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivPlain"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
|
||||||
app:srcCompat="@drawable/baseline_playlist_add_check_24" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/ivAttachments"
|
android:id="@+id/ivAttachments"
|
||||||
android:layout_width="21dp"
|
android:layout_width="21dp"
|
||||||
|
@ -197,7 +164,7 @@
|
||||||
android:layout_marginStart="6dp"
|
android:layout_marginStart="6dp"
|
||||||
android:contentDescription="@string/title_legend_attachment"
|
android:contentDescription="@string/title_legend_attachment"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
|
||||||
app:layout_constraintStart_toEndOf="@id/ivReceipt"
|
app:layout_constraintStart_toEndOf="@id/ivAnswered"
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
app:layout_constraintTop_toTopOf="@+id/tvSubject"
|
||||||
app:srcCompat="@drawable/baseline_attachment_24" />
|
app:srcCompat="@drawable/baseline_attachment_24" />
|
||||||
|
|
||||||
|
@ -272,6 +239,20 @@
|
||||||
app:layout_constraintTop_toBottomOf="@id/paddingTop"
|
app:layout_constraintTop_toBottomOf="@id/paddingTop"
|
||||||
app:srcCompat="@drawable/baseline_star_24" />
|
app:srcCompat="@drawable/baseline_star_24" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvExpand"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:layout_marginEnd="6dp"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="@string/title_expand_warning"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/paddingStart"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvSubject" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvPreview"
|
android:id="@+id/tvPreview"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -286,7 +267,7 @@
|
||||||
android:textStyle="italic"
|
android:textStyle="italic"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"
|
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"
|
||||||
app:layout_constraintStart_toEndOf="@id/paddingStart"
|
app:layout_constraintStart_toEndOf="@id/paddingStart"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvSubject" />
|
app:layout_constraintTop_toBottomOf="@id/tvExpand" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvError"
|
android:id="@+id/tvError"
|
||||||
|
|
|
@ -55,6 +55,31 @@
|
||||||
app:layout_constraintTop_toBottomOf="@id/paddingTop"
|
app:layout_constraintTop_toBottomOf="@id/paddingTop"
|
||||||
app:srcCompat="@drawable/baseline_person_24" />
|
app:srcCompat="@drawable/baseline_person_24" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/ivPriority"
|
||||||
|
android:layout_width="21dp"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:contentDescription="@string/title_send_priority"
|
||||||
|
android:tint="@color/colorError"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/ivAvatar"
|
||||||
|
app:layout_constraintTop_toTopOf="@+id/tvFrom"
|
||||||
|
app:srcCompat="@drawable/baseline_priority_high_24" />
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/ibAuth"
|
||||||
|
android:layout_width="21dp"
|
||||||
|
android:layout_height="21dp"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||||
|
android:contentDescription="@string/title_legend_auth"
|
||||||
|
android:tint="@color/colorError"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/ivPriority"
|
||||||
|
app:layout_constraintTop_toTopOf="@+id/tvFrom"
|
||||||
|
app:srcCompat="@drawable/baseline_flag_24" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvFrom"
|
android:id="@+id/tvFrom"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -66,7 +91,7 @@
|
||||||
android:text="From"
|
android:text="From"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/tvSize"
|
app:layout_constraintEnd_toStartOf="@+id/tvSize"
|
||||||
app:layout_constraintStart_toEndOf="@id/ivAvatar"
|
app:layout_constraintStart_toEndOf="@id/ibAuth"
|
||||||
app:layout_constraintTop_toBottomOf="@id/paddingTop" />
|
app:layout_constraintTop_toBottomOf="@id/paddingTop" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -134,31 +159,6 @@
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
||||||
app:srcCompat="@drawable/baseline_edit_24" />
|
app:srcCompat="@drawable/baseline_edit_24" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivPriority"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_send_priority"
|
|
||||||
android:tint="@color/colorError"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivType"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
|
||||||
app:srcCompat="@drawable/baseline_priority_high_24" />
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/ibAuth"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
|
||||||
android:contentDescription="@string/title_legend_auth"
|
|
||||||
android:tint="@color/colorError"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivPriority"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
|
||||||
app:srcCompat="@drawable/baseline_flag_24" />
|
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/ibSnoozed"
|
android:id="@+id/ibSnoozed"
|
||||||
android:layout_width="21dp"
|
android:layout_width="21dp"
|
||||||
|
@ -167,21 +167,10 @@
|
||||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||||
android:contentDescription="@string/title_legend_snoozed"
|
android:contentDescription="@string/title_legend_snoozed"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
||||||
app:layout_constraintStart_toEndOf="@id/ibAuth"
|
app:layout_constraintStart_toEndOf="@id/ivType"
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
||||||
app:srcCompat="@drawable/baseline_timelapse_24" />
|
app:srcCompat="@drawable/baseline_timelapse_24" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivBrowsed"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_legend_browsed"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ibSnoozed"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
|
||||||
app:srcCompat="@drawable/baseline_playlist_add_24" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/ivAnswered"
|
android:id="@+id/ivAnswered"
|
||||||
android:layout_width="21dp"
|
android:layout_width="21dp"
|
||||||
|
@ -189,32 +178,10 @@
|
||||||
android:layout_marginStart="6dp"
|
android:layout_marginStart="6dp"
|
||||||
android:contentDescription="@string/title_legend_answered"
|
android:contentDescription="@string/title_legend_answered"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
||||||
app:layout_constraintStart_toEndOf="@id/ivBrowsed"
|
app:layout_constraintStart_toEndOf="@id/ibSnoozed"
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
||||||
app:srcCompat="@drawable/baseline_reply_24" />
|
app:srcCompat="@drawable/baseline_reply_24" />
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivPlain"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_legend_plain_only"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivAnswered"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
|
||||||
app:srcCompat="@drawable/baseline_notes_24" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/ivReceipt"
|
|
||||||
android:layout_width="21dp"
|
|
||||||
android:layout_height="21dp"
|
|
||||||
android:layout_marginStart="6dp"
|
|
||||||
android:contentDescription="@string/title_legend_receipt"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/ivPlain"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
|
||||||
app:srcCompat="@drawable/baseline_playlist_add_check_24" />
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/ivAttachments"
|
android:id="@+id/ivAttachments"
|
||||||
android:layout_width="21dp"
|
android:layout_width="21dp"
|
||||||
|
@ -222,7 +189,7 @@
|
||||||
android:layout_marginStart="6dp"
|
android:layout_marginStart="6dp"
|
||||||
android:contentDescription="@string/title_legend_attachment"
|
android:contentDescription="@string/title_legend_attachment"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
|
||||||
app:layout_constraintStart_toEndOf="@id/ivReceipt"
|
app:layout_constraintStart_toEndOf="@id/ivAnswered"
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
||||||
app:srcCompat="@drawable/baseline_attachment_24" />
|
app:srcCompat="@drawable/baseline_attachment_24" />
|
||||||
|
|
||||||
|
@ -265,6 +232,21 @@
|
||||||
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
app:layout_constraintTop_toTopOf="@+id/tvFolder"
|
||||||
app:srcCompat="@drawable/baseline_message_24" />
|
app:srcCompat="@drawable/baseline_message_24" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvExpand"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="6dp"
|
||||||
|
android:layout_marginTop="3dp"
|
||||||
|
android:layout_marginEnd="6dp"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="@string/title_expand_warning"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/paddingStart"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvFolder" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvPreview"
|
android:id="@+id/tvPreview"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -280,7 +262,7 @@
|
||||||
android:textStyle="italic"
|
android:textStyle="italic"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"
|
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"
|
||||||
app:layout_constraintStart_toEndOf="@id/paddingStart"
|
app:layout_constraintStart_toEndOf="@id/paddingStart"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvFolder" />
|
app:layout_constraintTop_toBottomOf="@id/tvExpand" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tvError"
|
android:id="@+id/tvError"
|
||||||
|
|
|
@ -590,6 +590,7 @@
|
||||||
<string name="title_ask_help">Help improve FairEmail</string>
|
<string name="title_ask_help">Help improve FairEmail</string>
|
||||||
<string name="title_ask_reporting">Send error reports?</string>
|
<string name="title_ask_reporting">Send error reports?</string>
|
||||||
<string name="title_reporting_why">Error reporting will help improve FairEmail</string>
|
<string name="title_reporting_why">Error reporting will help improve FairEmail</string>
|
||||||
|
<string name="title_expand_warning">Expanding this message will download %1$s</string>
|
||||||
<string name="title_download_message">Downloading …</string>
|
<string name="title_download_message">Downloading …</string>
|
||||||
|
|
||||||
<string name="title_compose">Compose</string>
|
<string name="title_compose">Compose</string>
|
||||||
|
@ -601,6 +602,7 @@
|
||||||
<string name="title_via_identity">Via:</string>
|
<string name="title_via_identity">Via:</string>
|
||||||
<string name="title_received">Received:</string>
|
<string name="title_received">Received:</string>
|
||||||
<string name="title_size">Size:</string>
|
<string name="title_size">Size:</string>
|
||||||
|
<string name="title_folder">Folder:</string>
|
||||||
<string name="title_subject">Subject:</string>
|
<string name="title_subject">Subject:</string>
|
||||||
<string name="title_body_hint">Your message</string>
|
<string name="title_body_hint">Your message</string>
|
||||||
<string name="title_discard">Discard</string>
|
<string name="title_discard">Discard</string>
|
||||||
|
|
Loading…
Reference in New Issue