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
import android.graphics.drawable.LayerDrawable
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.Filter
import com.simplemobiletools.commons.extensions.applyColorFilter
import com.simplemobiletools.commons.extensions.normalizeString
import com.simplemobiletools.smsmessenger.R
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 kotlinx.android.synthetic.main.item_contact.view.*
class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: ArrayList<Contact>) :
ArrayAdapter<Contact>(activity, 0, contacts) {
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 {
val contact = resultList[position]
@@ -36,7 +28,7 @@ class AutoCompleteTextViewAdapter(val activity: SimpleActivity, val contacts: Ar
item_autocomplete_name.text = contact.name
item_autocomplete_number.text = contact.phoneNumber
contact.updateImage(context, item_autocomplete_image, placeholder)
context.loadImage(contact.photoUri, item_autocomplete_image, contact.name)
}
return listItem

View File

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

View File

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

View File

@@ -11,7 +11,7 @@ import android.content.Intent
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.drawable.Drawable
import android.graphics.drawable.BitmapDrawable
import android.media.AudioAttributes
import android.media.AudioManager
import android.media.RingtoneManager
@@ -518,7 +518,9 @@ fun Context.getNotificationLetterIcon(letter: String): 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()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.error(placeholder)

View File

@@ -1,22 +1,3 @@
package com.simplemobiletools.smsmessenger.models
import android.content.Context
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)
}
}
}
data class Contact(val id: Int, var name: String, var photoUri: String, var phoneNumber: String, var isOrganization: Boolean)

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>