mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
use the colored letters as placeholders everywhere
This commit is contained in:
@@ -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
|
||||||
|
@@ -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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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)
|
||||||
|
@@ -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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@@ -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>
|
|
Reference in New Issue
Block a user