make the contact lists nicer, use colored avatars with letters

This commit is contained in:
tibbi
2020-04-15 17:58:55 +02:00
parent bff89317a3
commit c7fda28544
7 changed files with 20 additions and 32 deletions

View File

@ -7,7 +7,6 @@ import android.content.Context
import android.content.Intent
import android.content.pm.ShortcutInfo
import android.content.pm.ShortcutManager
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.Icon
import android.graphics.drawable.LayerDrawable

View File

@ -1,6 +1,6 @@
package com.simplemobiletools.contacts.pro.adapters
import android.graphics.drawable.Drawable
import android.graphics.drawable.BitmapDrawable
import android.util.TypedValue
import android.view.Menu
import android.view.View
@ -35,8 +35,6 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
private val NEW_GROUP_ID = -1
private lateinit var contactDrawable: Drawable
private lateinit var businessContactDrawable: Drawable
private var config = activity.config
private var textToHighlight = highlightText
@ -48,13 +46,8 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
private val itemLayout = if (showPhoneNumbers) R.layout.item_contact_with_number else R.layout.item_contact_without_number
private var smallPadding = activity.resources.getDimension(R.dimen.small_margin).toInt()
private var mediumPadding = activity.resources.getDimension(R.dimen.medium_margin).toInt()
private var bigPadding = activity.resources.getDimension(R.dimen.normal_margin).toInt()
init {
setupDragListener(true)
initDrawables()
}
override fun getActionMenuId() = R.menu.cab
@ -122,11 +115,6 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
private fun getItemWithKey(key: Int): Contact? = contactItems.firstOrNull { it.id == key }
fun initDrawables() {
contactDrawable = activity.resources.getColoredDrawableWithColor(R.drawable.ic_person_vector, textColor)
businessContactDrawable = activity.resources.getColoredDrawableWithColor(R.drawable.ic_business_vector, textColor)
}
fun updateItems(newItems: ArrayList<Contact>, highlightText: String = "") {
if (newItems.hashCode() != contactItems.hashCode()) {
contactItems = newItems.clone() as ArrayList<Contact>
@ -286,11 +274,6 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
contact_name.setTextColor(textColor)
contact_name.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
if (!showContactThumbnails && !showPhoneNumbers) {
contact_name.setPadding(bigPadding, bigPadding, bigPadding, bigPadding)
} else {
contact_name.setPadding(if (showContactThumbnails) smallPadding else bigPadding, smallPadding, smallPadding, 0)
}
if (contact_number != null) {
val phoneNumberToUse = if (textToHighlight.isEmpty()) {
@ -302,14 +285,13 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
val numberText = phoneNumberToUse?.value ?: ""
contact_number.text = if (textToHighlight.isEmpty()) numberText else numberText.highlightTextPart(textToHighlight, adjustedPrimaryColor, false, true)
contact_number.setTextColor(textColor)
contact_number.setPadding(if (showContactThumbnails) smallPadding else bigPadding, 0, smallPadding, 0)
contact_number.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize)
}
contact_tmb.beVisibleIf(showContactThumbnails)
if (showContactThumbnails) {
val placeholderImage = if (contact.isABusinessContact()) businessContactDrawable else contactDrawable
val placeholderImage = BitmapDrawable(resources, context.getContactLetterIcon(fullName))
when {
contact.photoUri.isNotEmpty() -> {
val options = RequestOptions()
@ -324,7 +306,6 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
.apply(options)
.apply(RequestOptions.circleCropTransform())
.into(contact_tmb)
contact_tmb.setPadding(smallPadding, smallPadding, smallPadding, smallPadding)
}
contact.photo != null -> {
val options = RequestOptions()
@ -339,10 +320,8 @@ class ContactsAdapter(activity: SimpleActivity, var contactItems: ArrayList<Cont
.apply(options)
.apply(RequestOptions.circleCropTransform())
.into(contact_tmb)
contact_tmb.setPadding(smallPadding, smallPadding, smallPadding, smallPadding)
}
else -> {
contact_tmb.setPadding(mediumPadding, mediumPadding, mediumPadding, mediumPadding)
contact_tmb.setImageDrawable(placeholderImage)
}
}

View File

@ -82,7 +82,6 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
this is GroupsFragment -> (fragment_list.adapter as GroupsAdapter).updateTextColor(color)
else -> (fragment_list.adapter as ContactsAdapter).apply {
updateTextColor(color)
initDrawables()
}
}
}