From a66f8bffab6336082ba0e7393110256e08f656b1 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Mon, 23 Apr 2018 21:36:56 +0200 Subject: synchronize around getting last visibile uuid --- .../pixart/messenger/ui/ConversationFragment.java | 26 ++++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'src/main/java/de/pixart/messenger/ui') diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index bc3a7c890..0b399393d 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -1858,20 +1858,22 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke if (binding == null) { return null; } - int pos = binding.messagesView.getLastVisiblePosition(); - if (pos >= 0) { - Message message = null; - for (int i = pos; i >= 0; --i) { - message = (Message) binding.messagesView.getItemAtPosition(i); - if (message.getType() != Message.TYPE_STATUS) { - break; + synchronized (this.messageList) { + int pos = binding.messagesView.getLastVisiblePosition(); + if (pos >= 0) { + Message message = null; + for (int i = pos; i >= 0; --i) { + message = (Message) binding.messagesView.getItemAtPosition(i); + if (message.getType() != Message.TYPE_STATUS) { + break; + } } - } - if (message != null) { - while (message.next() != null && message.next().wasMergedIntoPrevious()) { - message = message.next(); + if (message != null) { + while (message.next() != null && message.next().wasMergedIntoPrevious()) { + message = message.next(); + } + return message.getUuid(); } - return message.getUuid(); } } return null; -- cgit v1.2.3