From dced2dae7e3cbc743ab635b030400003a7083431 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 14 Aug 2024 10:28:39 +0200 Subject: [PATCH] Improved contacts loader performances --- app/src/main/java/org/linphone/contacts/ContactLoader.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/linphone/contacts/ContactLoader.kt b/app/src/main/java/org/linphone/contacts/ContactLoader.kt index c00c6c9f3..ff9521947 100644 --- a/app/src/main/java/org/linphone/contacts/ContactLoader.kt +++ b/app/src/main/java/org/linphone/contacts/ContactLoader.kt @@ -61,6 +61,7 @@ class ContactLoader : LoaderManager.LoaderCallbacks { @MainThread override fun onCreateLoader(id: Int, args: Bundle?): Loader { + Log.i("$TAG Creating and starting cursor loader") val mimeType = ContactsContract.Data.MIMETYPE val mimeSelection = "$mimeType = ? OR $mimeType = ? OR $mimeType = ? OR $mimeType = ?" @@ -325,13 +326,12 @@ class ContactLoader : LoaderManager.LoaderCallbacks { for (localFriend in friendsList.friends) { val newlyFetchedFriend = friends[localFriend.refKey] if (newlyFetchedFriend != null) { - Log.d( - "$TAG Friend [${localFriend.name}] with ref key [${localFriend.refKey}] found in newly fetched batch" - ) - localFriend.edit() + friends.remove(localFriend.refKey) localFriend.nativeUri = newlyFetchedFriend.nativeUri // Native URI isn't stored in linphone database, needs to be updated + if (newlyFetchedFriend.vcard?.asVcard4String() == localFriend.vcard?.asVcard4String()) continue + localFriend.edit() // Update basic fields that may have changed localFriend.name = newlyFetchedFriend.name localFriend.organization = newlyFetchedFriend.organization