From d6025e59624641f016412e08bdbb6c7a64b11512 Mon Sep 17 00:00:00 2001 From: Naveen Date: Wed, 22 Jun 2022 01:26:22 +0530 Subject: [PATCH] Use SQL style `LIMIT` query before nougat --- .../dialer/helpers/RecentsHelper.kt | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/RecentsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/RecentsHelper.kt index 4897096c..46a0fd87 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/RecentsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/RecentsHelper.kt @@ -1,9 +1,7 @@ package com.simplemobiletools.dialer.helpers import android.annotation.SuppressLint -import android.content.ContentResolver import android.content.Context -import android.os.Bundle import android.provider.CallLog.Calls import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* @@ -45,10 +43,7 @@ class RecentsHelper(private val context: Context) { val contactsNumbersMap = HashMap() val contactPhotosMap = HashMap() - val uri = Calls.CONTENT_URI.buildUpon() - .appendQueryParameter(Calls.LIMIT_PARAM_KEY, QUERY_LIMIT) - .build() - + val uri = Calls.CONTENT_URI val projection = arrayOf( Calls._ID, Calls.NUMBER, @@ -65,15 +60,15 @@ class RecentsHelper(private val context: Context) { accountIdToSimIDMap[it.handle.id] = it.id } - val cursor = if (isRPlus()) { - val bundle = Bundle().apply { - putStringArray(ContentResolver.QUERY_ARG_SORT_COLUMNS, arrayOf(Calls._ID)) - putInt(ContentResolver.QUERY_ARG_SORT_DIRECTION, ContentResolver.QUERY_SORT_DIRECTION_DESCENDING) - } - - context.contentResolver.query(uri, projection, bundle, null) - } else { + val cursor = if (isNougatPlus()) { + // https://issuetracker.google.com/issues/175198972?pli=1#comment6 + val limitedUri = uri.buildUpon() + .appendQueryParameter(Calls.LIMIT_PARAM_KEY, QUERY_LIMIT) + .build() val sortOrder = "${Calls._ID} DESC" + context.contentResolver.query(limitedUri, projection, null, null, sortOrder) + } else { + val sortOrder = "${Calls._ID} DESC LIMIT $QUERY_LIMIT" context.contentResolver.query(uri, projection, null, null, sortOrder) }