1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-02-25 15:32:52 +00:00

Fixed always scroll to headers

This commit is contained in:
M66B 2020-05-05 21:27:43 +02:00
parent 53b8e1783a
commit 9d53e24e3e

View file

@ -1341,7 +1341,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
ensureExpanded(); ensureExpanded();
bindAddresses(message); bindAddresses(message);
bindHeaders(message); bindHeaders(message, false);
bindAttachments(message, properties.getAttachments(message.id)); bindAttachments(message, properties.getAttachments(message.id));
// Actions // Actions
@ -1611,7 +1611,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
} }
} }
private void bindHeaders(TupleMessageEx message) { private void bindHeaders(TupleMessageEx message, boolean scroll) {
boolean show_headers = properties.getValue("headers", message.id); boolean show_headers = properties.getValue("headers", message.id);
grpHeaders.setVisibility(show_headers ? View.VISIBLE : View.GONE); grpHeaders.setVisibility(show_headers ? View.VISIBLE : View.GONE);
@ -1628,18 +1628,19 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
else else
tvHeaders.setText(null); tvHeaders.setText(null);
new Handler().post(new Runnable() { if (scroll)
@Override new Handler().post(new Runnable() {
public void run() { @Override
View inHeaders = itemView.findViewById(R.id.inHeaders); public void run() {
View inHeaders = itemView.findViewById(R.id.inHeaders);
Rect rect = new Rect(); Rect rect = new Rect();
inHeaders.getDrawingRect(rect); inHeaders.getDrawingRect(rect);
((ViewGroup) itemView).offsetDescendantRectToMyCoords(inHeaders, rect); ((ViewGroup) itemView).offsetDescendantRectToMyCoords(inHeaders, rect);
properties.scrollTo(getAdapterPosition(), rect.top); properties.scrollTo(getAdapterPosition(), rect.top);
} }
}); });
} }
private void bindBody(TupleMessageEx message, final boolean scroll) { private void bindBody(TupleMessageEx message, final boolean scroll) {
@ -4223,7 +4224,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
boolean show_headers = !properties.getValue("headers", message.id); boolean show_headers = !properties.getValue("headers", message.id);
properties.setValue("headers", message.id, show_headers); properties.setValue("headers", message.id, show_headers);
bindHeaders(message); bindHeaders(message, true);
if (show_headers && message.headers == null) { if (show_headers && message.headers == null) {
Bundle args = new Bundle(); Bundle args = new Bundle();