From 654359eaea904376b93c66b42f348d165521fa69 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 4 Apr 2020 20:11:40 +0200 Subject: [PATCH] store received SMS in the SMS provider --- .../smsmessenger/extensions/Context.kt | 13 +++++++++++++ .../smsmessenger/receivers/SmsReceiver.kt | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) 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 da994a5c..e5108325 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -1,5 +1,6 @@ package com.simplemobiletools.smsmessenger.extensions +import android.content.ContentValues import android.content.Context import android.database.Cursor import android.provider.ContactsContract @@ -158,3 +159,15 @@ fun Context.getNameFromPhoneNumber(number: String): Int? { return null } + +fun Context.insertNewSMS(address: String, subject: String, body: String, date: Long) { + val uri = Telephony.Sms.CONTENT_URI + val contentValues = ContentValues().apply { + put(Telephony.Sms.ADDRESS, address) + put(Telephony.Sms.SUBJECT, subject) + put(Telephony.Sms.BODY, body) + put(Telephony.Sms.DATE, date) + } + + contentResolver.insert(uri, contentValues) +} 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 3f4cb950..3c5b174f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/receivers/SmsReceiver.kt @@ -3,9 +3,18 @@ package com.simplemobiletools.smsmessenger.receivers import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import android.provider.Telephony +import com.simplemobiletools.smsmessenger.extensions.insertNewSMS class SmsReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { - + val messages = Telephony.Sms.Intents.getMessagesFromIntent(intent) + messages.forEach { + val address = it.originatingAddress ?: "" + val subject = it.pseudoSubject + val body = it.messageBody + val date = it.timestampMillis + context.insertNewSMS(address, subject, body, date) + } } }