diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index f1f6bdc5e8..8a372952b6 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -3318,13 +3318,27 @@ public class AdapterMessage extends RecyclerView.Adapter() { @Override public void onCurrentListChanged(@Nullable PagedList previousList, @Nullable PagedList currentList) { - int prev = (previousList == null ? 0 : previousList.size()); - int cur = (currentList == null ? 0 : currentList.size()); boolean autoscroll = - (prefs.getBoolean("autoscroll", false) || - viewType == AdapterMessage.ViewType.THREAD); + (viewType == AdapterMessage.ViewType.THREAD || + prefs.getBoolean("autoscroll", false)); + + int prev = 0; + if (autoscroll && previousList != null) + for (int i = 0; i < previousList.size(); i++) { + TupleMessageEx message = previousList.get(i); + if (message != null && !message.ui_seen) + prev++; + } + + int cur = 0; + if (autoscroll && currentList != null) + for (int i = 0; i < currentList.size(); i++) { + TupleMessageEx message = currentList.get(i); + if (message != null && !message.ui_seen) + cur++; + } - if (gotoTop || (autoscroll && cur > prev)) { + if (gotoTop || cur > prev) { gotoTop = false; properties.scrollTo(0); }