mirror of
https://github.com/M66B/FairEmail.git
synced 2025-12-28 16:40:53 +01:00
Allow collapsing addresses
This commit is contained in:
@@ -137,24 +137,25 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
private ImageView ivFlagged;
|
||||
private ImageView ivAvatar;
|
||||
private TextView tvFrom;
|
||||
private ImageView ivAddContact;
|
||||
private TextView tvSize;
|
||||
private TextView tvTime;
|
||||
private TextView tvTimeEx;
|
||||
private ImageView ivAttachments;
|
||||
private TextView tvSubject;
|
||||
private TextView tvPreview;
|
||||
private TextView tvFolder;
|
||||
private TextView tvCount;
|
||||
private ImageView ivThread;
|
||||
private TextView tvPreview;
|
||||
private TextView tvError;
|
||||
private ProgressBar pbLoading;
|
||||
|
||||
private ImageView ivExpanderAddress;
|
||||
private TextView tvFromEx;
|
||||
private ImageView ivAddContact;
|
||||
private TextView tvTo;
|
||||
private TextView tvReplyTo;
|
||||
private TextView tvCc;
|
||||
private TextView tvBcc;
|
||||
private TextView tvTimeEx;
|
||||
private TextView tvSubjectEx;
|
||||
|
||||
private TextView tvHeaders;
|
||||
@@ -171,6 +172,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
private RecyclerView rvAttachment;
|
||||
private AdapterAttachment adapter;
|
||||
|
||||
private Group grpAddress;
|
||||
private Group grpHeaders;
|
||||
private Group grpAttachments;
|
||||
private Group grpExpanded;
|
||||
@@ -199,6 +201,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
tvError = itemView.findViewById(R.id.tvError);
|
||||
pbLoading = itemView.findViewById(R.id.pbLoading);
|
||||
|
||||
ivExpanderAddress = itemView.findViewById(R.id.ivExpanderAddress);
|
||||
tvFromEx = itemView.findViewById(R.id.tvFromEx);
|
||||
tvTo = itemView.findViewById(R.id.tvTo);
|
||||
tvReplyTo = itemView.findViewById(R.id.tvReplyTo);
|
||||
@@ -226,6 +229,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
adapter = new AdapterAttachment(context, owner, true);
|
||||
rvAttachment.setAdapter(adapter);
|
||||
|
||||
grpAddress = itemView.findViewById(R.id.grpAddress);
|
||||
grpHeaders = itemView.findViewById(R.id.grpHeaders);
|
||||
grpAttachments = itemView.findViewById(R.id.grpAttachments);
|
||||
grpExpanded = itemView.findViewById(R.id.grpExpanded);
|
||||
@@ -235,6 +239,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
|
||||
private void wire() {
|
||||
itemView.setOnClickListener(this);
|
||||
ivExpanderAddress.setOnClickListener(this);
|
||||
ivAddContact.setOnClickListener(this);
|
||||
bnvActions.setOnNavigationItemSelectedListener(this);
|
||||
btnHtml.setOnClickListener(this);
|
||||
@@ -243,6 +248,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
|
||||
private void unwire() {
|
||||
itemView.setOnClickListener(null);
|
||||
ivExpanderAddress.setOnClickListener(null);
|
||||
ivAddContact.setOnClickListener(null);
|
||||
bnvActions.setOnNavigationItemSelectedListener(null);
|
||||
btnHtml.setOnClickListener(null);
|
||||
@@ -255,23 +261,26 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
ivFlagged.setVisibility(View.GONE);
|
||||
ivAvatar.setVisibility(View.GONE);
|
||||
tvFrom.setText(null);
|
||||
ivAddContact.setVisibility(View.GONE);
|
||||
tvSize.setText(null);
|
||||
tvTime.setText(null);
|
||||
ivAttachments.setVisibility(View.GONE);
|
||||
tvSubject.setText(null);
|
||||
tvPreview.setVisibility(View.GONE);
|
||||
tvFolder.setText(null);
|
||||
tvCount.setText(null);
|
||||
ivThread.setVisibility(View.GONE);
|
||||
tvPreview.setVisibility(View.GONE);
|
||||
tvError.setVisibility(View.GONE);
|
||||
pbLoading.setVisibility(View.VISIBLE);
|
||||
|
||||
ivAddContact.setVisibility(View.GONE);
|
||||
pbHeaders.setVisibility(View.GONE);
|
||||
bnvActions.setVisibility(View.GONE);
|
||||
vSeparatorBody.setVisibility(View.GONE);
|
||||
btnHtml.setVisibility(View.GONE);
|
||||
btnImages.setVisibility(View.GONE);
|
||||
pbBody.setVisibility(View.GONE);
|
||||
|
||||
grpAddress.setVisibility(View.GONE);
|
||||
grpHeaders.setVisibility(View.GONE);
|
||||
grpAttachments.setVisibility(View.GONE);
|
||||
grpExpanded.setVisibility(View.GONE);
|
||||
@@ -280,6 +289,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
private void bindTo(int position, final TupleMessageEx message) {
|
||||
final DB db = DB.getInstance(context);
|
||||
final boolean show_expanded = properties.isExpanded(message.id);
|
||||
boolean show_addresses = properties.showAddresses(message.id);
|
||||
boolean show_headers = properties.showHeaders(message.id);
|
||||
|
||||
pbLoading.setVisibility(View.GONE);
|
||||
@@ -389,7 +399,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
tvFrom.setTextColor(colorUnseen);
|
||||
tvTime.setTextColor(colorUnseen);
|
||||
|
||||
grpExpanded.setVisibility(viewType == ViewType.THREAD && show_expanded ? View.VISIBLE : View.GONE);
|
||||
grpAddress.setVisibility(viewType == ViewType.THREAD && show_expanded && show_addresses ? View.VISIBLE : View.GONE);
|
||||
ivAddContact.setVisibility(viewType == ViewType.THREAD && show_expanded && contacts && message.from != null ? View.VISIBLE : View.GONE);
|
||||
pbHeaders.setVisibility(View.GONE);
|
||||
grpHeaders.setVisibility(show_headers && show_expanded ? View.VISIBLE : View.GONE);
|
||||
@@ -399,6 +409,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
btnImages.setVisibility(View.GONE);
|
||||
pbBody.setVisibility(View.GONE);
|
||||
grpAttachments.setVisibility(message.attachments > 0 && show_expanded ? View.VISIBLE : View.GONE);
|
||||
grpExpanded.setVisibility(viewType == ViewType.THREAD && show_expanded ? View.VISIBLE : View.GONE);
|
||||
|
||||
db.folder().liveSystemFolders(message.account).removeObservers(owner);
|
||||
db.attachment().liveAttachments(message.id).removeObservers(owner);
|
||||
@@ -406,6 +417,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
bnvActions.setTag(null);
|
||||
|
||||
if (show_expanded) {
|
||||
ivExpanderAddress.setImageResource(show_addresses ? R.drawable.baseline_expand_less_24 : R.drawable.baseline_expand_more_24);
|
||||
if (EntityFolder.DRAFTS.equals(message.folderType) ||
|
||||
EntityFolder.OUTBOX.equals(message.folderType) ||
|
||||
EntityFolder.SENT.equals(message.folderType))
|
||||
@@ -513,7 +525,9 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
if (view.getId() == R.id.ivAddContact)
|
||||
onAddContact(message);
|
||||
else if (viewType == ViewType.THREAD) {
|
||||
if (view.getId() == R.id.btnHtml) {
|
||||
if (view.getId() == R.id.ivExpanderAddress)
|
||||
onToggleAddresses(pos, message);
|
||||
else if (view.getId() == R.id.btnHtml) {
|
||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
|
||||
lbm.sendBroadcast(
|
||||
new Intent(ActivityView.ACTION_VIEW_FULL)
|
||||
@@ -522,7 +536,7 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
} else if (view.getId() == R.id.btnImages)
|
||||
onShowImages(message);
|
||||
else
|
||||
onExpandMessage(pos, message);
|
||||
onToggleMessage(pos, message);
|
||||
} else {
|
||||
if (EntityFolder.DRAFTS.equals(message.folderType))
|
||||
context.startActivity(
|
||||
@@ -586,6 +600,18 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
}
|
||||
}
|
||||
|
||||
private void onToggleMessage(int pos, EntityMessage message) {
|
||||
boolean expanded = !properties.isExpanded(message.id);
|
||||
properties.setExpanded(message.id, expanded);
|
||||
notifyItemChanged(pos);
|
||||
}
|
||||
|
||||
private void onToggleAddresses(int pos, EntityMessage message) {
|
||||
boolean addresses = !properties.showAddresses(message.id);
|
||||
properties.setAddresses(message.id, addresses);
|
||||
notifyItemChanged(pos);
|
||||
}
|
||||
|
||||
private void onShowImages(EntityMessage message) {
|
||||
properties.setImages(message.id, true);
|
||||
btnImages.setEnabled(false);
|
||||
@@ -595,12 +621,6 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
bodyTask.load(context, owner, args);
|
||||
}
|
||||
|
||||
private void onExpandMessage(int pos, EntityMessage message) {
|
||||
boolean expanded = !properties.isExpanded(message.id);
|
||||
properties.setExpanded(message.id, expanded);
|
||||
notifyItemChanged(pos);
|
||||
}
|
||||
|
||||
private SimpleTask<Spanned> bodyTask = new SimpleTask<Spanned>() {
|
||||
private String body = null;
|
||||
|
||||
@@ -1468,12 +1488,16 @@ public class AdapterMessage extends PagedListAdapter<TupleMessageEx, AdapterMess
|
||||
interface IProperties {
|
||||
void setExpanded(long id, boolean expand);
|
||||
|
||||
void setAddresses(long id, boolean show);
|
||||
|
||||
void setHeaders(long id, boolean show);
|
||||
|
||||
void setImages(long id, boolean show);
|
||||
|
||||
boolean isExpanded(long id);
|
||||
|
||||
boolean showAddresses(long id);
|
||||
|
||||
boolean showHeaders(long id);
|
||||
|
||||
boolean showImages(long id);
|
||||
|
||||
Reference in New Issue
Block a user