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 4d11590b..0da6fe4b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -41,6 +41,7 @@ import com.simplemobiletools.smsmessenger.helpers.* import com.simplemobiletools.smsmessenger.models.* import com.simplemobiletools.smsmessenger.receivers.SmsStatusDeliveredReceiver import com.simplemobiletools.smsmessenger.receivers.SmsStatusSentReceiver +import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_thread.* import kotlinx.android.synthetic.main.item_attachment.view.* import kotlinx.android.synthetic.main.item_selected_contact.view.* @@ -221,8 +222,13 @@ class ThreadActivity : SimpleActivity() { invalidateOptionsMenu() runOnUiThread { - val adapter = ThreadAdapter(this, threadItems, thread_messages_list, thread_messages_fastscroller) {} - thread_messages_list.adapter = adapter + val currAdapter = thread_messages_list.adapter + if (currAdapter == null) { + val adapter = ThreadAdapter(this, threadItems, thread_messages_list, thread_messages_fastscroller) {} + thread_messages_list.adapter = adapter + } else { + (currAdapter as ThreadAdapter).updateMessages(threadItems) + } } SimpleContactsHelper(this).getAvailableContacts(false) { contacts -> diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index 11d52421..8feb43af 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -195,10 +195,13 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList) { + val oldHashCode = messages.hashCode() + val newHashCode = newMessages.hashCode() + if (newHashCode != oldHashCode) { + messages = newMessages + notifyDataSetChanged() + recyclerView.scrollToPosition(messages.size-1) } } @@ -347,4 +350,11 @@ class ThreadAdapter(activity: SimpleActivity, var messages: ArrayList