39 lines
1.6 KiB
Kotlin
39 lines
1.6 KiB
Kotlin
package com.simplemobiletools.smsmessenger.receivers
|
|
|
|
import android.content.BroadcastReceiver
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import android.provider.Telephony
|
|
import com.simplemobiletools.commons.extensions.isNumberBlocked
|
|
import com.simplemobiletools.smsmessenger.extensions.getThreadId
|
|
import com.simplemobiletools.smsmessenger.extensions.insertNewSMS
|
|
import com.simplemobiletools.smsmessenger.extensions.showReceivedMessageNotification
|
|
import com.simplemobiletools.smsmessenger.helpers.refreshMessages
|
|
|
|
class SmsReceiver : BroadcastReceiver() {
|
|
override fun onReceive(context: Context, intent: Intent) {
|
|
val messages = Telephony.Sms.Intents.getMessagesFromIntent(intent)
|
|
var address = ""
|
|
var body = ""
|
|
var subject = ""
|
|
var date = 0L
|
|
var threadId = 0L
|
|
val type = Telephony.Sms.MESSAGE_TYPE_INBOX
|
|
val read = 0
|
|
val subscriptionId = intent.getIntExtra("subscription", -1)
|
|
|
|
messages.forEach {
|
|
address = it.originatingAddress ?: ""
|
|
subject = it.pseudoSubject
|
|
body += it.messageBody
|
|
date = Math.min(it.timestampMillis, System.currentTimeMillis())
|
|
threadId = context.getThreadId(address)
|
|
}
|
|
|
|
if (!context.isNumberBlocked(address)) {
|
|
val messageId = context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId)
|
|
context.showReceivedMessageNotification(address, body, threadId.toInt(), null, messageId, false)
|
|
refreshMessages()
|
|
}
|
|
}
|
|
}
|