mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-06 00:53:26 +02:00
Simplified/fixed scroll to top
This commit is contained in:
@@ -3175,6 +3175,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
||||
};
|
||||
|
||||
private Observer<PagedList<TupleMessageEx>> observer = new Observer<PagedList<TupleMessageEx>>() {
|
||||
private List<Long> ids = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void onChanged(@Nullable PagedList<TupleMessageEx> messages) {
|
||||
if (messages == null)
|
||||
@@ -3184,6 +3186,27 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
||||
if (handleThreadActions(messages))
|
||||
return;
|
||||
|
||||
if (viewType == AdapterMessage.ViewType.THREAD)
|
||||
adapter.gotoTop();
|
||||
else if (viewType != AdapterMessage.ViewType.SEARCH) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
boolean autoscroll = prefs.getBoolean("autoscroll", true);
|
||||
if (autoscroll) {
|
||||
boolean gotoTop = false;
|
||||
for (int i = 0; i < messages.size(); i++) {
|
||||
TupleMessageEx message = messages.get(i);
|
||||
if (message != null && !ids.contains(message.id)) {
|
||||
ids.add(message.id);
|
||||
if (!message.ui_seen)
|
||||
gotoTop = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (gotoTop)
|
||||
adapter.gotoTop();
|
||||
}
|
||||
}
|
||||
|
||||
Log.i("Submit messages=" + messages.size());
|
||||
adapter.submitList(messages);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user