Merge pull request #190 from Aga-C/fix-last-deleted-message

Fixed updating last message after deleting (#167)
This commit is contained in:
Tibor Kaputa 2021-09-08 15:10:09 +02:00 committed by GitHub
commit 345a611b0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 0 deletions

View File

@ -30,8 +30,10 @@ import com.simplemobiletools.commons.views.FastScroller
import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.activities.SimpleActivity
import com.simplemobiletools.smsmessenger.activities.ThreadActivity
import com.simplemobiletools.smsmessenger.dialogs.SelectTextDialog
import com.simplemobiletools.smsmessenger.extensions.deleteMessage
import com.simplemobiletools.smsmessenger.extensions.updateLastConversationMessage
import com.simplemobiletools.smsmessenger.helpers.*
import com.simplemobiletools.smsmessenger.models.*
import kotlinx.android.synthetic.main.item_attachment_image.view.*
@ -181,10 +183,12 @@ class ThreadAdapter(
val messagesToRemove = getSelectedItems()
val positions = getSelectedItemPositions()
val threadId = (messagesToRemove[0] as Message).threadId
messagesToRemove.forEach {
activity.deleteMessage((it as Message).id, it.isMMS)
}
messages.removeAll(messagesToRemove)
activity.updateLastConversationMessage(threadId)
activity.runOnUiThread {
if (messages.filter { it is Message }.isEmpty()) {

View File

@ -764,3 +764,15 @@ fun Context.getLockScreenVisibilityText(type: Int) = getString(
else -> R.string.nothing
}
)
fun Context.updateLastConversationMessage(threadId: Long) {
val uri = Threads.CONTENT_URI
val selection = "${Threads._ID} = ?"
val selectionArgs = arrayOf(threadId.toString())
try {
contentResolver.delete(uri, selection, selectionArgs)
val newConversation = getConversations(threadId)[0]
conversationsDB.insertOrUpdate(newConversation)
} catch (e: Exception) {
}
}