mirror of https://github.com/M66B/FairEmail.git
Fixed scroll on expand
This commit is contained in:
parent
9906ef5b6b
commit
0842f828a5
|
@ -3545,12 +3545,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
.putExtra("id", message.id));
|
||||
else {
|
||||
boolean expanded = !properties.getValue("expanded", message.id);
|
||||
|
||||
properties.setExpanded(message, expanded);
|
||||
|
||||
// Needed to scroll to item after collapsing other items
|
||||
if (expanded)
|
||||
properties.scrollTo(getAdapterPosition(), 0);
|
||||
properties.setExpanded(message, expanded, expanded);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4298,7 +4293,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
|
||||
message.ui_seen = args.getBoolean("seen");
|
||||
message.unseen = (message.ui_seen ? 0 : message.count);
|
||||
properties.setExpanded(message, false);
|
||||
properties.setExpanded(message, false, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -5803,8 +5798,14 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
return;
|
||||
}
|
||||
|
||||
boolean scroll = false;
|
||||
if (viewType == ViewType.THREAD) {
|
||||
scroll = properties.getValue("scroll", message.id);
|
||||
properties.setValue("scroll", message.id, false);
|
||||
}
|
||||
|
||||
holder.unwire();
|
||||
holder.bindTo(message, false);
|
||||
holder.bindTo(message, scroll);
|
||||
holder.wire();
|
||||
}
|
||||
|
||||
|
@ -5886,7 +5887,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
|
||||
boolean getValue(String name, long id);
|
||||
|
||||
void setExpanded(TupleMessageEx message, boolean expanded);
|
||||
void setExpanded(TupleMessageEx message, boolean expanded, boolean scroll);
|
||||
|
||||
void setSize(long id, Float size);
|
||||
|
||||
|
|
|
@ -1588,7 +1588,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setExpanded(TupleMessageEx message, boolean value) {
|
||||
public void setExpanded(TupleMessageEx message, boolean value, boolean scroll) {
|
||||
// Prevent flicker
|
||||
if (value && message.accountAutoSeen && !message.folderReadOnly) {
|
||||
message.unseen = 0;
|
||||
|
@ -1598,6 +1598,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
}
|
||||
|
||||
setValue("expanded", message.id, value);
|
||||
if (scroll)
|
||||
setValue("scroll", message.id, true);
|
||||
|
||||
final int p = adapter.getPositionForKey(message.id);
|
||||
if (p != NO_POSITION)
|
||||
|
@ -4683,7 +4685,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
|
||||
if (expand != null &&
|
||||
(expand.content || unmetered || (expand.size != null && expand.size < download)))
|
||||
iProperties.setExpanded(expand, true);
|
||||
iProperties.setExpanded(expand, true, false);
|
||||
}
|
||||
|
||||
// Auto expand all seen messages
|
||||
|
@ -4695,7 +4697,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
!message.duplicate &&
|
||||
!EntityFolder.DRAFTS.equals(message.folderType) &&
|
||||
!EntityFolder.TRASH.equals(message.folderType))
|
||||
iProperties.setExpanded(message, true);
|
||||
iProperties.setExpanded(message, true, false);
|
||||
} else {
|
||||
if (autoCloseCount > 0 && (autoclose || onclose != null)) {
|
||||
List<MessageTarget> mt = new ArrayList<>();
|
||||
|
|
Loading…
Reference in New Issue