diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index 4b2ad9e4..6aef8cc6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -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 contentValues = ContentValues().apply { put(Sms.TYPE, status) 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 629c3dfa..6816f8cf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/MessagesDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/interfaces/MessagesDao.kt @@ -29,6 +29,9 @@ interface MessagesDao { @Query("UPDATE messages SET read = 1 WHERE thread_id = :threadId") 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") fun delete(id: Long) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusDeliveredReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusDeliveredReceiver.kt index 5d13f23d..92b523db 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusDeliveredReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusDeliveredReceiver.kt @@ -6,7 +6,8 @@ import android.content.Intent import android.net.Uri import android.provider.Telephony 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 class SmsStatusDeliveredReceiver : BroadcastReceiver() { @@ -16,7 +17,9 @@ class SmsStatusDeliveredReceiver : BroadcastReceiver() { val uri = Uri.parse(intent.getStringExtra("message_uri")) val id = uri?.lastPathSegment?.toLong() ?: 0L 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() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt index 9e604ef2..cb2164d5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsStatusSentReceiver.kt @@ -6,7 +6,8 @@ import android.content.Intent import android.net.Uri import android.provider.Telephony 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 class SmsStatusSentReceiver : BroadcastReceiver() { @@ -16,8 +17,9 @@ class SmsStatusSentReceiver : BroadcastReceiver() { val uri = Uri.parse(intent.getStringExtra("message_uri")) val id = uri?.lastPathSegment?.toLong() ?: 0L ensureBackgroundThread { - val newStatus = if (intent.extras!!.containsKey("errorCode")) Telephony.Sms.MESSAGE_TYPE_FAILED else Telephony.Sms.MESSAGE_TYPE_OUTBOX - context.updateMessageDeliveryStatus(id, newStatus) + val type = if (intent.extras!!.containsKey("errorCode")) Telephony.Sms.MESSAGE_TYPE_FAILED else Telephony.Sms.MESSAGE_TYPE_OUTBOX + context.updateMessageType(id, type) + context.messagesDB.updateType(id, type) refreshMessages() } }