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 type = Telephony.Sms.MESSAGE_TYPE_INBOX
val read = 0
val subject = it.pseudoSubject messages.forEach {
val body = it.messageBody address = it.originatingAddress ?: ""
val date = it.timestampMillis subject = it.pseudoSubject
val threadId = context.getThreadId(address) body += it.messageBody
val type = Telephony.Sms.MESSAGE_TYPE_INBOX date = it.timestampMillis
val read = 0 threadId = context.getThreadId(address)
context.insertNewSMS(address, subject, body, date, read, threadId, type)
context.showReceivedMessageNotification(address, body, threadId.toInt())
} }
refreshMessages() if (!context.isNumberBlocked(address)) {
context.insertNewSMS(address, subject, body, date, read, threadId, type)
context.showReceivedMessageNotification(address, body, threadId.toInt())
refreshMessages()
}
} }
} }