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 b0b08594..2ea2e950 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -471,7 +471,7 @@ fun Context.getNameAndPhotoFromPhoneNumber(number: String): NamePhoto { return NamePhoto(number, null) } -fun Context.insertNewSMS(address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int): Int { +fun Context.insertNewSMS(address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int): Long { val uri = Sms.CONTENT_URI val contentValues = ContentValues().apply { put(Sms.ADDRESS, address) @@ -485,7 +485,7 @@ fun Context.insertNewSMS(address: String, subject: String, body: String, date: L } val newUri = contentResolver.insert(uri, contentValues) - return newUri?.lastPathSegment?.toInt() ?: 0 + return newUri?.lastPathSegment?.toLong() ?: 0L } fun Context.deleteConversation(threadId: Long) { diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt index dabbdc3c..2a613685 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt @@ -8,8 +8,10 @@ import android.os.Looper import android.provider.Telephony import com.simplemobiletools.commons.extensions.isNumberBlocked import com.simplemobiletools.commons.helpers.ensureBackgroundThread +import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.smsmessenger.extensions.* import com.simplemobiletools.smsmessenger.helpers.refreshMessages +import com.simplemobiletools.smsmessenger.models.Message class SmsReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { @@ -35,11 +37,15 @@ class SmsReceiver : BroadcastReceiver() { Handler(Looper.getMainLooper()).post { if (!context.isNumberBlocked(address)) { ensureBackgroundThread { - context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId) + val newMessageId = context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId) val conversation = context.getConversations(threadId).firstOrNull() ?: return@ensureBackgroundThread context.conversationsDB.insertOrUpdate(conversation) context.updateUnreadCountBadge(context.conversationsDB.getUnreadConversations()) + + val participant = SimpleContact(0, 0, address, "", arrayListOf(address), ArrayList(), ArrayList()) + val message = Message(newMessageId, body, type, arrayListOf(participant), (date / 1000).toInt(), false, threadId, false, null, address, "", subscriptionId) + context.messagesDB.insertOrUpdate(message) } context.showReceivedMessageNotification(address, body, threadId, null)