diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index 3faff799..008ab485 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -704,7 +704,13 @@ class ThreadActivity : SimpleActivity() { notificationManager.cancel(threadId.hashCode()) } + val lastMaxId = messages.maxByOrNull { it.id }?.id ?: 0L messages = getMessages(threadId) + + messages.filter { !it.isReceivedMessage() && it.id > lastMaxId }.forEach { + messagesDB.insertOrIgnore(it) + } + setupAdapter() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/MessagesDao.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/MessagesDao.kt index 70bf6510..629c3dfa 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/MessagesDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/MessagesDao.kt @@ -11,6 +11,9 @@ interface MessagesDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertOrUpdate(message: Message) + @Insert(onConflict = OnConflictStrategy.IGNORE) + fun insertOrIgnore(message: Message): Long + @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertMessages(vararg message: Message)