properley update message types in the local db too

This commit is contained in:
tibbi 2021-01-01 20:13:45 +01:00
parent 7fedcbd108
commit ac7d2afbb6
4 changed files with 14 additions and 6 deletions

View File

@ -554,7 +554,7 @@ fun Context.markThreadMessagesUnread(threadId: Long) {
} }
} }
fun Context.updateMessageDeliveryStatus(id: Long, status: Int) { fun Context.updateMessageType(id: Long, status: Int) {
val uri = Sms.CONTENT_URI val uri = Sms.CONTENT_URI
val contentValues = ContentValues().apply { val contentValues = ContentValues().apply {
put(Sms.TYPE, status) put(Sms.TYPE, status)

View File

@ -29,6 +29,9 @@ interface MessagesDao {
@Query("UPDATE messages SET read = 1 WHERE thread_id = :threadId") @Query("UPDATE messages SET read = 1 WHERE thread_id = :threadId")
fun markThreadRead(threadId: Long) fun markThreadRead(threadId: Long)
@Query("UPDATE messages SET type = :type WHERE id = :id")
fun updateType(id: Long, type: Int)
@Query("DELETE FROM messages WHERE id = :id") @Query("DELETE FROM messages WHERE id = :id")
fun delete(id: Long) fun delete(id: Long)

View File

@ -6,7 +6,8 @@ import android.content.Intent
import android.net.Uri import android.net.Uri
import android.provider.Telephony import android.provider.Telephony
import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.smsmessenger.extensions.updateMessageDeliveryStatus import com.simplemobiletools.smsmessenger.extensions.messagesDB
import com.simplemobiletools.smsmessenger.extensions.updateMessageType
import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.helpers.refreshMessages
class SmsStatusDeliveredReceiver : BroadcastReceiver() { class SmsStatusDeliveredReceiver : BroadcastReceiver() {
@ -16,7 +17,9 @@ class SmsStatusDeliveredReceiver : BroadcastReceiver() {
val uri = Uri.parse(intent.getStringExtra("message_uri")) val uri = Uri.parse(intent.getStringExtra("message_uri"))
val id = uri?.lastPathSegment?.toLong() ?: 0L val id = uri?.lastPathSegment?.toLong() ?: 0L
ensureBackgroundThread { ensureBackgroundThread {
context.updateMessageDeliveryStatus(id, Telephony.Sms.MESSAGE_TYPE_SENT) val type = Telephony.Sms.MESSAGE_TYPE_SENT
context.updateMessageType(id, type)
context.messagesDB.updateType(id, type)
refreshMessages() refreshMessages()
} }
} }

View File

@ -6,7 +6,8 @@ import android.content.Intent
import android.net.Uri import android.net.Uri
import android.provider.Telephony import android.provider.Telephony
import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.smsmessenger.extensions.updateMessageDeliveryStatus import com.simplemobiletools.smsmessenger.extensions.messagesDB
import com.simplemobiletools.smsmessenger.extensions.updateMessageType
import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.helpers.refreshMessages
class SmsStatusSentReceiver : BroadcastReceiver() { class SmsStatusSentReceiver : BroadcastReceiver() {
@ -16,8 +17,9 @@ class SmsStatusSentReceiver : BroadcastReceiver() {
val uri = Uri.parse(intent.getStringExtra("message_uri")) val uri = Uri.parse(intent.getStringExtra("message_uri"))
val id = uri?.lastPathSegment?.toLong() ?: 0L val id = uri?.lastPathSegment?.toLong() ?: 0L
ensureBackgroundThread { ensureBackgroundThread {
val newStatus = if (intent.extras!!.containsKey("errorCode")) Telephony.Sms.MESSAGE_TYPE_FAILED else Telephony.Sms.MESSAGE_TYPE_OUTBOX val type = if (intent.extras!!.containsKey("errorCode")) Telephony.Sms.MESSAGE_TYPE_FAILED else Telephony.Sms.MESSAGE_TYPE_OUTBOX
context.updateMessageDeliveryStatus(id, newStatus) context.updateMessageType(id, type)
context.messagesDB.updateType(id, type)
refreshMessages() refreshMessages()
} }
} }