diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index f26180ab0b..f3b6509499 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -5170,8 +5170,16 @@ public class AdapterMessage extends RecyclerView.Adapter previousList, @Nullable PagedList currentList) { if (gotoTop && previousList != null) { - gotoTop = false; - properties.scrollTo(0, 0); + if (ascending) { + if (currentList != null && currentList.size() > 0) { + properties.scrollTo(currentList.size() - 1, 0); + if (currentList.get(currentList.size() - 1) != null) + gotoTop = false; + } + } else { + gotoTop = false; + properties.scrollTo(0, 0); + } } if (selectionTracker != null && selectionTracker.hasSelection()) { @@ -5255,7 +5263,12 @@ public class AdapterMessage extends RecyclerView.Adapter list = getCurrentList(); + if (list != null && list.size() > 0) + properties.scrollTo(list.size() - 1, 0); + } else + properties.scrollTo(0, 0); this.gotoTop = true; } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index d09e21db7f..76b3627619 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1478,6 +1478,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. return false; } + @Override public void setExpanded(TupleMessageEx message, boolean value) { // Prevent flicker if (value && @@ -1539,6 +1540,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. return heights.get(id, defaultHeight); } + @Override public void setPosition(long id, Pair position) { if (position == null) positions.remove(id); @@ -1546,6 +1548,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. positions.put(id, position); } + @Override public Pair getPosition(long id) { return positions.get(id); } @@ -1564,6 +1567,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } } + @Override public void scrollTo(final int pos, final int y) { new Handler().post(new Runnable() { @Override