mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-02-21 22:17:45 +01:00
make the contact images more colorful
This commit is contained in:
parent
584fc7ca81
commit
d8080848c6
@ -1,10 +1,16 @@
|
||||
package com.simplemobiletools.smsmessenger.adapters
|
||||
|
||||
import android.graphics.Typeface
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.net.Uri
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
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.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||
import com.simplemobiletools.commons.extensions.formatDateOrTime
|
||||
@ -14,6 +20,8 @@ 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.helpers.refreshMessages
|
||||
import com.simplemobiletools.smsmessenger.models.Message
|
||||
import kotlinx.android.synthetic.main.item_message.view.*
|
||||
@ -104,6 +112,13 @@ class MessagesAdapter(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewRecycled(holder: ViewHolder) {
|
||||
super.onViewRecycled(holder)
|
||||
if (!activity.isDestroyed && !activity.isFinishing) {
|
||||
Glide.with(activity).clear(holder.itemView.message_image)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupView(view: View, message: Message) {
|
||||
view.apply {
|
||||
message_frame.isSelected = selectedKeys.contains(message.id)
|
||||
@ -125,6 +140,22 @@ class MessagesAdapter(
|
||||
arrayListOf<TextView>(message_address, message_body_short, message_date).forEach {
|
||||
it.setTextColor(textColor)
|
||||
}
|
||||
|
||||
val participant = message.participants.first()
|
||||
val uri = Uri.parse(participant.photoUri)
|
||||
val placeholder = BitmapDrawable(activity.resources, activity.getNotificationLetterIcon(participant.name.getNameLetter()))
|
||||
val options = RequestOptions()
|
||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
.error(placeholder)
|
||||
.centerCrop()
|
||||
|
||||
Glide.with(context)
|
||||
.load(uri)
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.placeholder(placeholder)
|
||||
.apply(options)
|
||||
.apply(RequestOptions.circleCropTransform())
|
||||
.into(message_image)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ import com.simplemobiletools.smsmessenger.R
|
||||
import com.simplemobiletools.smsmessenger.activities.ThreadActivity
|
||||
import com.simplemobiletools.smsmessenger.helpers.Config
|
||||
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
|
||||
import com.simplemobiletools.smsmessenger.helpers.letterBackgroundColors
|
||||
import com.simplemobiletools.smsmessenger.models.Contact
|
||||
import com.simplemobiletools.smsmessenger.models.Message
|
||||
import com.simplemobiletools.smsmessenger.models.MessageAttachment
|
||||
@ -488,8 +489,9 @@ fun Context.getNotificationLetterIcon(letter: String): Bitmap {
|
||||
val view = TextView(this)
|
||||
view.layout(0, 0, size, size)
|
||||
|
||||
val charValue = letter.toCharArray().first().toInt()
|
||||
val circlePaint = Paint().apply {
|
||||
color = getAdjustedPrimaryColor()
|
||||
color = letterBackgroundColors[charValue % letterBackgroundColors.size].toInt()
|
||||
isAntiAlias = true
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.simplemobiletools.smsmessenger.extensions
|
||||
|
||||
import com.simplemobiletools.commons.extensions.normalizeString
|
||||
import java.util.*
|
||||
|
||||
// get the contact names first letter at showing the placeholder without image
|
||||
fun String.getNameLetter() = normalizeString().toCharArray().getOrNull(0)?.toString() ?: "S"
|
||||
fun String.getNameLetter() = normalizeString().toCharArray().getOrNull(0)?.toString()?.toUpperCase(Locale.getDefault()) ?: "S"
|
||||
|
@ -19,3 +19,17 @@ const val MESSAGE_ADDRESS = "message_address"
|
||||
fun refreshMessages() {
|
||||
EventBus.getDefault().post(Events.RefreshMessages())
|
||||
}
|
||||
|
||||
// most app icon colors from md_app_icon_colors with reduced alpha
|
||||
val letterBackgroundColors = arrayListOf(
|
||||
0xCCD32F2F,
|
||||
0xCCC2185B,
|
||||
0xCC1976D2,
|
||||
0xCC0288D1,
|
||||
0xCC0097A7,
|
||||
0xCC00796B,
|
||||
0xCC388E3C,
|
||||
0xCC689F38,
|
||||
0xCCF57C00,
|
||||
0xCCE64A19
|
||||
)
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.simplemobiletools.smsmessenger.models
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import android.provider.Telephony
|
||||
import com.simplemobiletools.smsmessenger.extensions.getThreadTitle
|
||||
|
||||
@ -10,4 +11,6 @@ data class Message(
|
||||
fun isReceivedMessage() = type == Telephony.Sms.MESSAGE_TYPE_INBOX
|
||||
|
||||
fun getThreadTitle() = participants.getThreadTitle()
|
||||
|
||||
fun getThreadImageUri() = participants.firstOrNull()?.photoUri
|
||||
}
|
||||
|
@ -18,8 +18,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/message_image"
|
||||
android:layout_width="@dimen/avatar_size"
|
||||
android:layout_height="@dimen/avatar_size"
|
||||
android:layout_width="@dimen/normal_icon_size"
|
||||
android:layout_height="@dimen/normal_icon_size"
|
||||
android:layout_alignTop="@+id/message_address"
|
||||
android:layout_alignBottom="@+id/message_date"
|
||||
android:layout_centerVertical="true"
|
||||
|
Loading…
x
Reference in New Issue
Block a user