From ff0cc0b0055fd13a344edd4324ab802dc79eda37 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 8 May 2020 22:49:54 +0200 Subject: [PATCH] speed up SMS loading by caching blocked numbers --- .../smsmessenger/extensions/Context.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt index df6c6f4e..97dd03ba 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt @@ -46,10 +46,20 @@ fun Context.getMessages(threadId: Int): ArrayList { val selectionArgs = arrayOf(threadId.toString()) val sortOrder = "${Sms._ID} DESC LIMIT 100" + val blockStatus = HashMap() var messages = ArrayList() queryCursor(uri, projection, selection, selectionArgs, sortOrder, showErrors = true) { cursor -> 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 }