From 4db075d6434d5731454fd3df2fce755f21c68c27 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Wed, 14 Nov 2018 15:13:25 +0000 Subject: [PATCH] Only consider the latest item for preloading. --- .../android/conversation/ConversationActivity.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java index a9f8d2a09..ae0d3ddad 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java @@ -336,17 +336,19 @@ public class ConversationActivity extends BriarActivity new ArrayList<>(headers); sort(sorted, (a, b) -> Long.compare(b.getTimestamp(), a.getTimestamp())); - // Eagerly load the text of the latest message to avoid jumping - for (ConversationMessageHeader h : sorted) { - if (h instanceof PrivateMessageHeader) { - MessageId id = h.getId(); + if (!sorted.isEmpty()) { + // If the latest header is a private message, eagerly load + // its text so we can set the scroll position correctly + ConversationMessageHeader latest = sorted.get(0); + if (latest instanceof PrivateMessageHeader && + ((PrivateMessageHeader) latest).hasText()) { + MessageId id = latest.getId(); String text = textCache.get(id); if (text == null) { LOG.info("Eagerly loading text of latest message"); text = messagingManager.getMessageText(id); textCache.put(id, text); } - break; } } displayMessages(revision, sorted);