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