diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java index 938a6dd657..996d0f2519 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationAdapter.java @@ -416,7 +416,7 @@ public class ConversationAdapter } boolean hasNoConversationMessages() { - return getItemCount() + fastRecords.size() == 0; + return super.getItemCount() + fastRecords.size() == 0; } /** diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index 86866fe890..6abd9accd3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -1279,17 +1279,19 @@ public class ConversationFragment extends LoggingFragment implements Multiselect return; } - if (position >= (isTypingIndicatorShowing() ? 1 : 0)) { - ConversationMessage item = getListAdapter().getItem(position); - if (item != null) { - MessageRecord record = item.getMessageRecord(); - long latestReactionReceived = Stream.of(record.getReactions()) - .map(ReactionRecord::getDateReceived) - .max(Long::compareTo) - .orElse(0L); + ConversationMessage item = getListAdapter().getItem(position); + if (item == null) { + item = getListAdapter().getItem(position + 1); + } - markReadHelper.onViewsRevealed(Math.max(record.getDateReceived(), latestReactionReceived)); - } + if (item != null) { + MessageRecord record = item.getMessageRecord(); + long latestReactionReceived = Stream.of(record.getReactions()) + .map(ReactionRecord::getDateReceived) + .max(Long::compareTo) + .orElse(0L); + + markReadHelper.onViewsRevealed(Math.max(record.getDateReceived(), latestReactionReceived)); } }