ignore cache when replacing image

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2023-04-26 13:49:49 +02:00
parent c880378ac0
commit 2ecea9e569
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
3 changed files with 11 additions and 1 deletions

View File

@ -1040,6 +1040,7 @@ class ChatActivity :
.crossfade(true) .crossfade(true)
.target(target) .target(target)
.memoryCachePolicy(CachePolicy.DISABLED) .memoryCachePolicy(CachePolicy.DISABLED)
.diskCachePolicy(CachePolicy.DISABLED)
.build() .build()
) )
} }

View File

@ -804,7 +804,7 @@ class ConversationInfoActivity :
} }
Conversation.ConversationType.ROOM_GROUP_CALL, Conversation.ConversationType.ROOM_PUBLIC_CALL -> { Conversation.ConversationType.ROOM_GROUP_CALL, Conversation.ConversationType.ROOM_PUBLIC_CALL -> {
binding.avatarImage.loadConversationAvatar(conversationUser, conversation!!, false) binding.avatarImage.loadConversationAvatar(conversationUser, conversation!!, true)
} }
Conversation.ConversationType.ROOM_SYSTEM -> { Conversation.ConversationType.ROOM_SYSTEM -> {

View File

@ -33,6 +33,7 @@ import androidx.core.content.res.ResourcesCompat
import coil.annotation.ExperimentalCoilApi import coil.annotation.ExperimentalCoilApi
import coil.imageLoader import coil.imageLoader
import coil.load import coil.load
import coil.request.CachePolicy
import coil.request.ImageRequest import coil.request.ImageRequest
import coil.request.SuccessResult import coil.request.SuccessResult
import coil.result import coil.result
@ -101,6 +102,12 @@ private fun ImageView.loadAvatarInternal(
placeholder: Drawable? placeholder: Drawable?
): io.reactivex.disposables ): io.reactivex.disposables
.Disposable { .Disposable {
val cachePolicy = if (replace) {
CachePolicy.DISABLED
} else {
CachePolicy.ENABLED
}
if (replace && this.result is SuccessResult) { if (replace && this.result is SuccessResult) {
val result = this.result as SuccessResult val result = this.result as SuccessResult
val memoryCacheKey = result.memoryCacheKey val memoryCacheKey = result.memoryCacheKey
@ -133,6 +140,8 @@ private fun ImageView.loadAvatarInternal(
listener(onError = { _, result -> listener(onError = { _, result ->
Log.w(TAG, "Can't load avatar with URL: $url", result.throwable) Log.w(TAG, "Can't load avatar with URL: $url", result.throwable)
}) })
memoryCachePolicy(cachePolicy)
diskCachePolicy(cachePolicy)
} }
) )
} }