From 14bf7d4271a218187a42ce509fd0b8ed541359bf Mon Sep 17 00:00:00 2001 From: moezbhatti Date: Mon, 3 Jun 2019 22:50:31 -0400 Subject: [PATCH] Don't include display name in query --- .../moez/QKSMS/blocking/CallControlBlockingClient.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/data/src/main/java/com/moez/QKSMS/blocking/CallControlBlockingClient.kt b/data/src/main/java/com/moez/QKSMS/blocking/CallControlBlockingClient.kt index 758d4bf4..601ccc0a 100644 --- a/data/src/main/java/com/moez/QKSMS/blocking/CallControlBlockingClient.kt +++ b/data/src/main/java/com/moez/QKSMS/blocking/CallControlBlockingClient.kt @@ -32,16 +32,20 @@ class CallControlBlockingClient @Inject constructor( private val context: Context ) : BlockingClient { + private val projection: Array = arrayOf( + //CallControl.Lookup.DISPLAY_NAME, // This has a performance impact on the lookup, and we don't need it + CallControl.Lookup.BLOCK_REASON + ) + class LookupResult(cursor: Cursor) { - val displayName: String? = cursor.getStringOrNull(cursor.getColumnIndexOrThrow(CallControl.Lookup.DISPLAY_NAME)) - val blockReason: String? = cursor.getStringOrNull(cursor.getColumnIndexOrThrow(CallControl.Lookup.BLOCK_REASON)) + val blockReason: String? = cursor.getStringOrNull(0) } override fun shouldBlock(address: String): Single { val uri = Uri.withAppendedPath(CallControl.LOOKUP_TEXT_URI, address) return Single.fromCallable { tryOrNull { - context.contentResolver.query(uri, null, null, null, null) // Query URI + context.contentResolver.query(uri, projection, null, null, null) // Query URI ?.use { cursor -> cursor.map(::LookupResult) } // Map to Result object ?.any { result -> result.blockReason != null } // Check if any are blocked } == true // If none are blocked or we errored at some point, return false