From 04d5b49160c21d99f2f67f5334ec5642b5cdff58 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 18 Nov 2019 09:05:38 +0100 Subject: [PATCH] Fixed scroll to top thread --- .../eu/faircode/email/FragmentMessages.java | 28 +++++++++---------- .../eu/faircode/email/ViewModelMessages.java | 2 +- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index aaa43392ee..57523cce69 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -3186,25 +3186,23 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. if (handleThreadActions(messages)) return; - if (viewType == AdapterMessage.ViewType.THREAD) - adapter.gotoTop(); - else if (viewType != AdapterMessage.ViewType.SEARCH) { + 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(); + boolean gotoTop = false; + for (int i = 0; i < messages.size() && i < ViewModelMessages.LOCAL_PAGE_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 && + (autoscroll || viewType == AdapterMessage.ViewType.THREAD)) + adapter.gotoTop(); } Log.i("Submit messages=" + messages.size()); diff --git a/app/src/main/java/eu/faircode/email/ViewModelMessages.java b/app/src/main/java/eu/faircode/email/ViewModelMessages.java index 2fba693453..bbe25d3a3a 100644 --- a/app/src/main/java/eu/faircode/email/ViewModelMessages.java +++ b/app/src/main/java/eu/faircode/email/ViewModelMessages.java @@ -51,7 +51,7 @@ public class ViewModelMessages extends ViewModel { private ExecutorService executor = Helper.getBackgroundExecutor(2, "model"); - private static final int LOCAL_PAGE_SIZE = 100; + static final int LOCAL_PAGE_SIZE = 100; private static final int REMOTE_PAGE_SIZE = 10; private static final int SEARCH_PAGE_SIZE = 10; private static final int LOW_MEM_MB = 32;