diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/ConversationFragment.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationFragment.java | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index 4207a1b5e..6d45cf306 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -97,6 +97,7 @@ import de.pixart.messenger.ui.adapter.MessageAdapter; import de.pixart.messenger.ui.util.ActivityResult; import de.pixart.messenger.ui.util.AttachmentTool; import de.pixart.messenger.ui.util.ConversationMenuConfigurator; +import de.pixart.messenger.ui.util.ListViewUtils; import de.pixart.messenger.ui.util.PendingItem; import de.pixart.messenger.ui.util.PresenceSelector; import de.pixart.messenger.ui.util.ScrollState; @@ -2253,22 +2254,11 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } private void setSelection(int pos, boolean jumpToBottom) { - setSelection(this.binding.messagesView, pos, jumpToBottom); - this.binding.messagesView.post(() -> setSelection(this.binding.messagesView, pos, jumpToBottom)); + ListViewUtils.setSelection(this.binding.messagesView, pos, jumpToBottom); + this.binding.messagesView.post(() -> ListViewUtils.setSelection(this.binding.messagesView, pos, jumpToBottom)); this.binding.messagesView.post(this::fireReadEvent); } - private static void setSelection(final ListView listView, int pos, boolean jumpToBottom) { - if (jumpToBottom) { - final View lastChild = listView.getChildAt(listView.getChildCount() - 1); - if (lastChild != null) { - listView.setSelectionFromTop(pos, -lastChild.getHeight()); - return; - } - } - listView.setSelection(pos); - } - private boolean scrolledToBottom() { return this.binding != null && scrolledToBottom(this.binding.messagesView); } |