From 27592706ce046acfd96e0a6ec8316825ca2c07d5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 28 Oct 2019 19:36:25 +0100 Subject: [PATCH] improving the performance at fetching local contacts --- .../contacts/pro/helpers/LocalContactsHelper.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt index ef0d4daf..0f74e15f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt @@ -16,9 +16,16 @@ import com.simplemobiletools.contacts.pro.models.LocalContact import com.simplemobiletools.contacts.pro.models.Organization class LocalContactsHelper(val context: Context) { - fun getAllContacts() = context.contactsDB.getContacts().map { convertLocalContactToContact(it) }.toMutableList() as ArrayList + fun getAllContacts(): ArrayList { + val contacts = context.contactsDB.getContacts() + val storedGroups = ContactsHelper(context).getStoredGroupsSync() + return contacts.map { convertLocalContactToContact(it, storedGroups) }.toMutableList() as ArrayList + } - fun getContactWithId(id: Int) = convertLocalContactToContact(context.contactsDB.getContactWithId(id)) + fun getContactWithId(id: Int): Contact? { + val storedGroups = ContactsHelper(context).getStoredGroupsSync() + return convertLocalContactToContact(context.contactsDB.getContactWithId(id), storedGroups) + } fun insertOrUpdateContact(contact: Contact): Boolean { val localContact = convertContactToLocalContact(contact) @@ -74,7 +81,7 @@ class LocalContactsHelper(val context: Context) { return scaledSizePhotoData } - private fun convertLocalContactToContact(localContact: LocalContact?): Contact? { + private fun convertLocalContactToContact(localContact: LocalContact?, storedGroups: ArrayList): Contact? { if (localContact == null) { return null } @@ -89,8 +96,6 @@ class LocalContactsHelper(val context: Context) { } } - val storedGroups = ContactsHelper(context).getStoredGroupsSync() - return context.getEmptyContact().apply { id = localContact.id!! prefix = localContact.prefix