properly handle multipart longer sms messages

This commit is contained in:
tibbi
2020-04-19 20:55:48 +02:00
parent 4b3051a845
commit aea826b57c

View File

@@ -13,22 +13,26 @@ import com.simplemobiletools.smsmessenger.helpers.refreshMessages
class SmsReceiver : BroadcastReceiver() { class SmsReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
val messages = Telephony.Sms.Intents.getMessagesFromIntent(intent) val messages = Telephony.Sms.Intents.getMessagesFromIntent(intent)
messages.forEach { var address = ""
val address = it.originatingAddress ?: "" var body = ""
if (context.isNumberBlocked(address)) { var subject = ""
return@forEach var date = 0L
} var threadId = 0L
val subject = it.pseudoSubject
val body = it.messageBody
val date = it.timestampMillis
val threadId = context.getThreadId(address)
val type = Telephony.Sms.MESSAGE_TYPE_INBOX val type = Telephony.Sms.MESSAGE_TYPE_INBOX
val read = 0 val read = 0
context.insertNewSMS(address, subject, body, date, read, threadId, type)
context.showReceivedMessageNotification(address, body, threadId.toInt()) messages.forEach {
address = it.originatingAddress ?: ""
subject = it.pseudoSubject
body += it.messageBody
date = it.timestampMillis
threadId = context.getThreadId(address)
} }
if (!context.isNumberBlocked(address)) {
context.insertNewSMS(address, subject, body, date, read, threadId, type)
context.showReceivedMessageNotification(address, body, threadId.toInt())
refreshMessages() refreshMessages()
} }
}
} }