From 93b7ef3343486030cd0c212b2cb40d70434ec4c9 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 16 Apr 2020 12:36:33 +0200 Subject: [PATCH] make sure we use the proper letter at the contact colored avatar --- .../contacts/pro/adapters/ContactsAdapter.kt | 7 +------ .../pro/fragments/MyViewPagerFragment.kt | 12 +---------- .../contacts/pro/models/Contact.kt | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt index 01daf292..55a27a02 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/adapters/ContactsAdapter.kt @@ -290,12 +290,7 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList contact.getFullCompany() - config.startNameWithSurname -> contact.surname - else -> contact.firstName - } - + val avatarName = contact.getAvatarLetterName(context) val placeholderImage = BitmapDrawable(resources, context.getContactLetterIcon(avatarName)) if (contact.photoUri.isEmpty() && contact.photo == null) { contact_tmb.setImageDrawable(placeholderImage) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt index 88a5b8a6..70259fb8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/fragments/MyViewPagerFragment.kt @@ -242,17 +242,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) private fun setupLetterFastscroller(contacts: ArrayList) { letter_fastscroller.setupWithRecyclerView(fragment_list, { position -> try { - val contact = contacts[position] - var name = when { - contact.isABusinessContact() -> contact.getFullCompany() - config.startNameWithSurname -> contact.surname - else -> contact.firstName - } - - if (name.isEmpty() && contact.emails.isNotEmpty()) { - name = contact.emails.first().value - } - + val name = contacts[position].getAvatarLetterName(context) var character = if (name.isNotEmpty()) name.substring(0, 1) else "" if (!character.areLettersOnly()) { character = "#" diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt index cbe82e81..326e2d8d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/models/Contact.kt @@ -1,11 +1,13 @@ package com.simplemobiletools.contacts.pro.models +import android.content.Context import android.graphics.Bitmap import android.telephony.PhoneNumberUtils import com.simplemobiletools.commons.extensions.normalizeString import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME import com.simplemobiletools.commons.helpers.SORT_DESCENDING +import com.simplemobiletools.contacts.pro.extensions.config import com.simplemobiletools.contacts.pro.extensions.normalizeNumber import com.simplemobiletools.contacts.pro.helpers.SMT_PRIVATE @@ -140,4 +142,22 @@ data class Contact(var id: Int, var prefix: String, var firstName: String, var m fun isPrivate() = source == SMT_PRIVATE fun getSignatureKey() = if (photoUri.isNotEmpty()) photoUri else hashCode() + + fun getAvatarLetterName(context: Context): String { + var name = when { + isABusinessContact() -> getFullCompany() + context.config.startNameWithSurname -> surname + else -> firstName + } + + if (name.isEmpty() && emails.isNotEmpty()) { + name = emails.first().value + } + + if (name.isEmpty()) { + name = getNameToDisplay() + } + + return name + } }