make sure we use the proper letter at the contact colored avatar

This commit is contained in:
tibbi 2020-04-16 12:36:33 +02:00
parent 0ad5874c5d
commit 93b7ef3343
3 changed files with 22 additions and 17 deletions

View File

@ -290,12 +290,7 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
contact_tmb.beVisibleIf(showContactThumbnails)
if (showContactThumbnails) {
val avatarName = when {
contact.isABusinessContact() -> 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)

View File

@ -242,17 +242,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
private fun setupLetterFastscroller(contacts: ArrayList<Contact>) {
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 = "#"

View File

@ -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
}
}