From a84aa91e28f53e020b7c5c971c7df01ad052fc67 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 15 Apr 2020 18:25:30 +0200 Subject: [PATCH] removing some duplication at avatar loading --- .../contacts/pro/adapters/ContactsAdapter.kt | 55 ++++++++----------- .../contacts/pro/models/Contact.kt | 2 + 2 files changed, 26 insertions(+), 31 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 d3288349..01daf292 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 @@ -7,7 +7,6 @@ import android.view.View import android.view.ViewGroup import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy -import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions import com.bumptech.glide.request.RequestOptions import com.bumptech.glide.signature.ObjectKey import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter @@ -291,39 +290,33 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList { - val options = RequestOptions() - .signature(ObjectKey(contact.photoUri)) - .diskCacheStrategy(DiskCacheStrategy.RESOURCE) - .error(placeholderImage) - .centerCrop() + val avatarName = when { + contact.isABusinessContact() -> contact.getFullCompany() + config.startNameWithSurname -> contact.surname + else -> contact.firstName + } - Glide.with(activity) - .load(contact.photoUri) - .transition(DrawableTransitionOptions.withCrossFade()) - .apply(options) - .apply(RequestOptions.circleCropTransform()) - .into(contact_tmb) - } - contact.photo != null -> { - val options = RequestOptions() - .signature(ObjectKey(contact.hashCode())) - .diskCacheStrategy(DiskCacheStrategy.RESOURCE) - .error(placeholderImage) - .centerCrop() + val placeholderImage = BitmapDrawable(resources, context.getContactLetterIcon(avatarName)) + if (contact.photoUri.isEmpty() && contact.photo == null) { + contact_tmb.setImageDrawable(placeholderImage) + } else { + val options = RequestOptions() + .signature(ObjectKey(contact.getSignatureKey())) + .diskCacheStrategy(DiskCacheStrategy.RESOURCE) + .error(placeholderImage) + .centerCrop() - Glide.with(activity) - .load(contact.photo) - .transition(DrawableTransitionOptions.withCrossFade()) - .apply(options) - .apply(RequestOptions.circleCropTransform()) - .into(contact_tmb) - } - else -> { - contact_tmb.setImageDrawable(placeholderImage) + val itemToLoad: Any? = if (contact.photoUri.isNotEmpty()) { + contact.photoUri + } else { + contact.photo } + + Glide.with(activity) + .load(itemToLoad) + .apply(options) + .apply(RequestOptions.circleCropTransform()) + .into(contact_tmb) } } } 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 8533f942..cbe82e81 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 @@ -138,4 +138,6 @@ 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() }