Update ConversationsAdapter.kt

This commit is contained in:
Tibor Kaputa 2021-09-08 15:18:24 +02:00 committed by GitHub
parent f9a71c0e0b
commit e28b8ddae0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 3 deletions

View File

@ -24,6 +24,7 @@ import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.activities.SimpleActivity
import com.simplemobiletools.smsmessenger.extensions.deleteConversation import com.simplemobiletools.smsmessenger.extensions.deleteConversation
import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesRead import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesRead
import com.simplemobiletools.smsmessenger.extensions.markThreadMessagesUnread
import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.helpers.refreshMessages
import com.simplemobiletools.smsmessenger.models.Conversation import com.simplemobiletools.smsmessenger.models.Conversation
import kotlinx.android.synthetic.main.item_conversation.view.* import kotlinx.android.synthetic.main.item_conversation.view.*
@ -61,6 +62,7 @@ class ConversationsAdapter(
R.id.cab_copy_number -> copyNumberToClipboard() R.id.cab_copy_number -> copyNumberToClipboard()
R.id.cab_delete -> askConfirmDelete() R.id.cab_delete -> askConfirmDelete()
R.id.cab_select_all -> selectAll() R.id.cab_select_all -> selectAll()
R.id.cab_mark_as_unread -> markAsUnread()
R.id.cab_mark_as_read -> markAsRead() R.id.cab_mark_as_read -> markAsRead()
} }
} }
@ -186,21 +188,34 @@ class ConversationsAdapter(
} }
} }
private fun markAsRead(){ private fun markAsRead() {
if (selectedKeys.isEmpty()) { if (selectedKeys.isEmpty()) {
return return
} }
val conversationsMarkedAsRead = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<Conversation>
val conversationsMarkedAsRead = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<Conversation>
ensureBackgroundThread { ensureBackgroundThread {
conversationsMarkedAsRead.filter{el -> !el.read}.forEach { conversationsMarkedAsRead.filter { conversation -> !conversation.read }.forEach {
activity.markThreadMessagesRead(it.threadId) activity.markThreadMessagesRead(it.threadId)
} }
activity.runOnUiThread { activity.runOnUiThread {
refreshMessages() refreshMessages()
finishActMode() finishActMode()
} }
} }
}
private fun markAsUnread() {
if (selectedKeys.isEmpty()) {
return
}
val conversationsMarkedAsUnread = conversations.filter { selectedKeys.contains(it.hashCode()) } as ArrayList<Conversation>
ensureBackgroundThread {
conversationsMarkedAsUnread.filter { conversation -> conversation.read }.forEach {
activity.markThreadMessagesUnread(it.threadId)
}
}
} }
private fun addNumberToContact() { private fun addNumberToContact() {