use the colored letters as placeholders everywhere

This commit is contained in:
tibbi
2020-04-11 10:23:36 +02:00
parent f96f992203
commit b606d9fdfc
6 changed files with 10 additions and 74 deletions

View File

@@ -1,28 +1,20 @@
package com.simplemobiletools.smsmessenger.adapters package com.simplemobiletools.smsmessenger.adapters
import android.graphics.drawable.LayerDrawable
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import android.widget.Filter import android.widget.Filter
import com.simplemobiletools.commons.extensions.applyColorFilter
import com.simplemobiletools.commons.extensions.normalizeString import com.simplemobiletools.commons.extensions.normalizeString
import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.activities.SimpleActivity
import com.simplemobiletools.smsmessenger.extensions.config import com.simplemobiletools.smsmessenger.extensions.loadImage
import com.simplemobiletools.smsmessenger.models.Contact import com.simplemobiletools.smsmessenger.models.Contact
import kotlinx.android.synthetic.main.item_contact.view.* import kotlinx.android.synthetic.main.item_contact.view.*
class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: ArrayList<Contact>) : class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: ArrayList<Contact>) :
ArrayAdapter<Contact>(activity, 0, contacts) { ArrayAdapter<Contact>(activity, 0, contacts) {
var resultList = ArrayList<Contact>() var resultList = ArrayList<Contact>()
private var placeholder = activity.resources.getDrawable(R.drawable.contact_circular_background)
init {
(placeholder as LayerDrawable).findDrawableByLayerId(R.id.attendee_circular_background)
.applyColorFilter(activity.config.primaryColor)
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val contact = resultList[position] val contact = resultList[position]
@@ -36,7 +28,7 @@ class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: Ar
item_autocomplete_name.text = contact.name item_autocomplete_name.text = contact.name
item_autocomplete_number.text = contact.phoneNumber item_autocomplete_number.text = contact.phoneNumber
contact.updateImage(context, item_autocomplete_image, placeholder) context.loadImage(contact.photoUri, item_autocomplete_image, contact.name)
} }
return listItem return listItem

View File

@@ -1,16 +1,15 @@
package com.simplemobiletools.smsmessenger.adapters package com.simplemobiletools.smsmessenger.adapters
import android.graphics.drawable.Drawable
import android.view.Menu import android.view.Menu
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.FastScroller
import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.activities.SimpleActivity
import com.simplemobiletools.smsmessenger.extensions.loadImage
import com.simplemobiletools.smsmessenger.models.Contact import com.simplemobiletools.smsmessenger.models.Contact
import kotlinx.android.synthetic.main.item_contact_with_number.view.* import kotlinx.android.synthetic.main.item_contact_with_number.view.*
import java.util.* import java.util.*
@@ -21,13 +20,6 @@ class ContactsAdapter(
) : ) :
MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
private lateinit var contactDrawable: Drawable
private lateinit var businessContactDrawable: Drawable
init {
initDrawables()
}
override fun getActionMenuId() = 0 override fun getActionMenuId() = 0
override fun prepareActionMode(menu: Menu) {} override fun prepareActionMode(menu: Menu) {}
@@ -58,11 +50,6 @@ class ContactsAdapter(
override fun getItemCount() = contacts.size override fun getItemCount() = contacts.size
private fun initDrawables() {
contactDrawable = activity.resources.getColoredDrawableWithColor(R.drawable.ic_person_vector, textColor)
businessContactDrawable = activity.resources.getColoredDrawableWithColor(R.drawable.ic_business_vector, textColor)
}
override fun onViewRecycled(holder: ViewHolder) { override fun onViewRecycled(holder: ViewHolder) {
super.onViewRecycled(holder) super.onViewRecycled(holder)
if (!activity.isDestroyed && !activity.isFinishing) { if (!activity.isDestroyed && !activity.isFinishing) {
@@ -78,13 +65,7 @@ class ContactsAdapter(
contact_number.text = contact.phoneNumber contact_number.text = contact.phoneNumber
contact_number.setTextColor(textColor) contact_number.setTextColor(textColor)
val placeholder = if (contact.isOrganization) { context.loadImage(contact.photoUri, contact_tmb, contact.name)
businessContactDrawable
} else {
contactDrawable
}
contact.updateImage(context, contact_tmb, placeholder)
} }
} }
} }

View File

@@ -1,7 +1,6 @@
package com.simplemobiletools.smsmessenger.adapters package com.simplemobiletools.smsmessenger.adapters
import android.graphics.Typeface import android.graphics.Typeface
import android.graphics.drawable.BitmapDrawable
import android.view.Menu import android.view.Menu
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@@ -16,8 +15,6 @@ import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.smsmessenger.R import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.activities.SimpleActivity import com.simplemobiletools.smsmessenger.activities.SimpleActivity
import com.simplemobiletools.smsmessenger.extensions.deleteThread import com.simplemobiletools.smsmessenger.extensions.deleteThread
import com.simplemobiletools.smsmessenger.extensions.getNameLetter
import com.simplemobiletools.smsmessenger.extensions.getNotificationLetterIcon
import com.simplemobiletools.smsmessenger.extensions.loadImage import com.simplemobiletools.smsmessenger.extensions.loadImage
import com.simplemobiletools.smsmessenger.helpers.refreshMessages import com.simplemobiletools.smsmessenger.helpers.refreshMessages
import com.simplemobiletools.smsmessenger.models.Message import com.simplemobiletools.smsmessenger.models.Message
@@ -139,8 +136,7 @@ class MessagesAdapter(
} }
val participant = message.participants.first() val participant = message.participants.first()
val placeholder = BitmapDrawable(activity.resources, activity.getNotificationLetterIcon(participant.name.getNameLetter())) context.loadImage(participant.photoUri, message_image, participant.name)
context.loadImage(participant.photoUri, message_image, placeholder)
} }
} }
} }

View File

@@ -11,7 +11,7 @@ import android.content.Intent
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.Paint import android.graphics.Paint
import android.graphics.drawable.Drawable import android.graphics.drawable.BitmapDrawable
import android.media.AudioAttributes import android.media.AudioAttributes
import android.media.AudioManager import android.media.AudioManager
import android.media.RingtoneManager import android.media.RingtoneManager
@@ -518,7 +518,9 @@ fun Context.getNotificationLetterIcon(letter: String): Bitmap {
return bitmap return bitmap
} }
fun Context.loadImage(path: String, imageView: ImageView, placeholder: Drawable) { fun Context.loadImage(path: String, imageView: ImageView, placeholderName: String) {
val placeholder = BitmapDrawable(resources, getNotificationLetterIcon(placeholderName.getNameLetter()))
val options = RequestOptions() val options = RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE) .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.error(placeholder) .error(placeholder)

View File

@@ -1,22 +1,3 @@
package com.simplemobiletools.smsmessenger.models package com.simplemobiletools.smsmessenger.models
import android.content.Context data class Contact(val id: Int, var name: String, var photoUri: String, var phoneNumber: String, var isOrganization: Boolean)
import android.graphics.drawable.Drawable
import android.widget.ImageView
import com.simplemobiletools.smsmessenger.extensions.loadImage
data class Contact(
val id: Int,
var name: String,
var photoUri: String,
var phoneNumber: String,
var isOrganization: Boolean
) {
fun updateImage(context: Context, imageView: ImageView, placeholder: Drawable) {
if (photoUri.isEmpty()) {
imageView.setImageDrawable(placeholder)
} else {
context.loadImage(photoUri, imageView, placeholder)
}
}
}

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/attendee_circular_background">
<shape android:shape="oval">
<solid android:color="@color/color_primary" />
</shape>
</item>
<item
android:bottom="@dimen/small_margin"
android:drawable="@drawable/ic_person_vector"
android:left="@dimen/small_margin"
android:right="@dimen/small_margin"
android:top="@dimen/small_margin" />
</layer-list>