Merge branch 'dev' of github.com:oxen-io/session-android into dev

This commit is contained in:
Niels Andriesse 2021-05-21 15:10:49 +10:00
commit 01b86fcc2f

View File

@ -29,7 +29,7 @@ class ProfilePictureView : RelativeLayout {
var additionalDisplayName: String? = null var additionalDisplayName: String? = null
var isRSSFeed = false var isRSSFeed = false
var isLarge = false var isLarge = false
private val imagesCached = mutableSetOf<String>() private val profilePicturesCached = mutableMapOf<String,String?>()
// region Lifecycle // region Lifecycle
constructor(context: Context) : super(context) { constructor(context: Context) : super(context) {
@ -142,13 +142,13 @@ class ProfilePictureView : RelativeLayout {
private fun setProfilePictureIfNeeded(imageView: ImageView, publicKey: String, displayName: String?, @DimenRes sizeResId: Int) { private fun setProfilePictureIfNeeded(imageView: ImageView, publicKey: String, displayName: String?, @DimenRes sizeResId: Int) {
if (publicKey.isNotEmpty()) { if (publicKey.isNotEmpty()) {
val recipient = Recipient.from(context, Address.fromSerialized(publicKey), false) val recipient = Recipient.from(context, Address.fromSerialized(publicKey), false)
if (imagesCached.contains(publicKey)) return if (profilePicturesCached.containsKey(publicKey) && profilePicturesCached[publicKey] == recipient.profileAvatar) return
val signalProfilePicture = recipient.contactPhoto val signalProfilePicture = recipient.contactPhoto
if (signalProfilePicture != null && (signalProfilePicture as? ProfileContactPhoto)?.avatarObject != "0" val avatar = (signalProfilePicture as? ProfileContactPhoto)?.avatarObject
&& (signalProfilePicture as? ProfileContactPhoto)?.avatarObject != "") { if (signalProfilePicture != null && avatar != "0" && avatar != "") {
glide.clear(imageView) glide.clear(imageView)
glide.load(signalProfilePicture).diskCacheStrategy(DiskCacheStrategy.AUTOMATIC).circleCrop().into(imageView) glide.load(signalProfilePicture).diskCacheStrategy(DiskCacheStrategy.AUTOMATIC).circleCrop().into(imageView)
imagesCached.add(publicKey) profilePicturesCached[publicKey] = recipient.profileAvatar
} else { } else {
val sizeInPX = resources.getDimensionPixelSize(sizeResId) val sizeInPX = resources.getDimensionPixelSize(sizeResId)
glide.clear(imageView) glide.clear(imageView)
@ -158,7 +158,7 @@ class ProfilePictureView : RelativeLayout {
publicKey, publicKey,
displayName displayName
)).diskCacheStrategy(DiskCacheStrategy.ALL).circleCrop().into(imageView) )).diskCacheStrategy(DiskCacheStrategy.ALL).circleCrop().into(imageView)
imagesCached.add(publicKey) profilePicturesCached[publicKey] = recipient.profileAvatar
} }
} else { } else {
imageView.setImageDrawable(null) imageView.setImageDrawable(null)
@ -166,7 +166,7 @@ class ProfilePictureView : RelativeLayout {
} }
fun recycle() { fun recycle() {
imagesCached.clear() profilePicturesCached.clear()
} }
// endregion // endregion
} }