diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt index 7c29afdf81..5c8db86ec4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationItemDecorations.kt @@ -109,10 +109,11 @@ class ConversationItemDecorations(hasWallpaper: Boolean = false, private val sch * which causes the unread divider to be removed. */ private fun updateUnreadState(items: List) { - val state = unreadState + val state: UnreadState = unreadState if (state is UnreadState.InitialUnreadState) { - val timestamp = (items[state.unreadCount - 1] as? ConversationMessageElement)?.timestamp() + val firstUnread = items[(state.unreadCount - 1).coerceIn(items.indices)] + val timestamp = (firstUnread as? ConversationMessageElement)?.timestamp() if (timestamp != null) { unreadState = UnreadState.CompleteUnreadState(unreadCount = state.unreadCount, firstUnreadTimestamp = timestamp) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt index 4f74b43ea8..f555cabf93 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt @@ -3285,6 +3285,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } threadIds.forEach { + threads.updateReadState(it) threads.update( threadId = it, unarchive = false,