complicate the threading at receiving messages a bit more
This commit is contained in:
parent
64011e1083
commit
f66833e9bd
|
@ -3,6 +3,8 @@ package com.simplemobiletools.smsmessenger.receivers
|
|||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.provider.Telephony
|
||||
import com.simplemobiletools.commons.extensions.isNumberBlocked
|
||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||
|
@ -21,25 +23,29 @@ class SmsReceiver : BroadcastReceiver() {
|
|||
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)) {
|
||||
ensureBackgroundThread {
|
||||
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())
|
||||
ensureBackgroundThread {
|
||||
messages.forEach {
|
||||
address = it.originatingAddress ?: ""
|
||||
subject = it.pseudoSubject
|
||||
body += it.messageBody
|
||||
date = Math.min(it.timestampMillis, System.currentTimeMillis())
|
||||
threadId = context.getThreadId(address)
|
||||
}
|
||||
|
||||
context.showReceivedMessageNotification(address, body, threadId.toInt(), null)
|
||||
refreshMessages()
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
if (!context.isNumberBlocked(address)) {
|
||||
ensureBackgroundThread {
|
||||
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())
|
||||
}
|
||||
|
||||
context.showReceivedMessageNotification(address, body, threadId.toInt(), null)
|
||||
refreshMessages()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue