From eabbf41ab74a64377e9b8ce69244a723787712ec Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 25 Jul 2021 21:35:33 +0200 Subject: [PATCH] fix #59, properly fetch contact photos at Recents tab --- .../dialer/helpers/RecentsHelper.kt | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 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 be535d21..58af2cc5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/RecentsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/RecentsHelper.kt @@ -3,10 +3,8 @@ package com.simplemobiletools.dialer.helpers import android.annotation.SuppressLint import android.content.ContentResolver import android.content.Context -import android.os.Build import android.os.Bundle import android.provider.CallLog.Calls -import androidx.annotation.RequiresApi import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.SimpleContact @@ -44,6 +42,8 @@ class RecentsHelper(private val context: Context) { var previousRecentCallFrom = "" var previousStartTS = 0 val contactsNumbersMap = HashMap() + val contactPhotosMap = HashMap() + val uri = Calls.CONTENT_URI val projection = arrayOf( Calls._ID, @@ -107,7 +107,19 @@ class RecentsHelper(private val context: Context) { name = context.getString(R.string.unknown) } - val photoUri = cursor.getStringValue(Calls.CACHED_PHOTO_URI) ?: "" + var photoUri = cursor.getStringValue(Calls.CACHED_PHOTO_URI) ?: "" + if (photoUri.isEmpty()) { + if (contactPhotosMap.containsKey(number)) { + photoUri = contactPhotosMap[number]!! + } else { + val contact = contacts.firstOrNull { it.doesContainPhoneNumber(number) } + if (contact != null) { + photoUri = contact.photoUri + contactPhotosMap[number] = contact.photoUri + } + } + } + val startTS = (cursor.getLongValue(Calls.DATE) / 1000L).toInt() if (previousStartTS == startTS) { continue