mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
speed up SMS loading by caching blocked numbers
This commit is contained in:
@@ -46,10 +46,20 @@ fun Context.getMessages(threadId: Int): ArrayList<Message> {
|
|||||||
val selectionArgs = arrayOf(threadId.toString())
|
val selectionArgs = arrayOf(threadId.toString())
|
||||||
val sortOrder = "${Sms._ID} DESC LIMIT 100"
|
val sortOrder = "${Sms._ID} DESC LIMIT 100"
|
||||||
|
|
||||||
|
val blockStatus = HashMap<String, Boolean>()
|
||||||
var messages = ArrayList<Message>()
|
var messages = ArrayList<Message>()
|
||||||
queryCursor(uri, projection, selection, selectionArgs, sortOrder, showErrors = true) { cursor ->
|
queryCursor(uri, projection, selection, selectionArgs, sortOrder, showErrors = true) { cursor ->
|
||||||
val senderNumber = cursor.getStringValue(Sms.ADDRESS)
|
val senderNumber = cursor.getStringValue(Sms.ADDRESS)
|
||||||
if (isNumberBlocked(senderNumber)) {
|
|
||||||
|
val isNumberBlocked = if (blockStatus.containsKey(senderNumber)) {
|
||||||
|
blockStatus[senderNumber] ?: false
|
||||||
|
} else {
|
||||||
|
val isBlocked = isNumberBlocked(senderNumber)
|
||||||
|
blockStatus[senderNumber] = isBlocked
|
||||||
|
isBlocked
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isNumberBlocked) {
|
||||||
return@queryCursor
|
return@queryCursor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user