mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-22 12:08:34 +00:00
Fixes a significant memory leak in the sticker keyboard, which caused UI lag and system slowdowns, particularly on lower-end devices.
Closes signalapp/Signal-Android#14283 Fixes signalapp/Signal-Android#13770
This commit is contained in:
committed by
Jeffrey Starke
parent
7c7f2ff2aa
commit
ccd36f199a
@@ -41,11 +41,12 @@ class KeyboardStickerListAdapter(
|
||||
|
||||
private inner class StickerViewHolder(itemView: View) : MappingViewHolder<Sticker>(itemView) {
|
||||
|
||||
private val image: ImageView = findViewById(R.id.sticker_keyboard_page_image)
|
||||
val image: ImageView = findViewById(R.id.sticker_keyboard_page_image)
|
||||
|
||||
override fun bind(model: Sticker) {
|
||||
requestManager.load(model.uri)
|
||||
.set(ApngOptions.ANIMATE, allowApngAnimation)
|
||||
.skipMemoryCache(true)
|
||||
.transition(DrawableTransitionOptions.withCrossFade())
|
||||
.into(image)
|
||||
|
||||
@@ -62,6 +63,12 @@ class KeyboardStickerListAdapter(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewRecycled(holder: MappingViewHolder<*>) {
|
||||
if (holder is StickerViewHolder) {
|
||||
requestManager.clear(holder.image)
|
||||
}
|
||||
}
|
||||
|
||||
data class StickerHeader(override val packId: String, private val title: String?, private val titleResource: Int?) : MappingModel<StickerHeader>, HasPackId, Header {
|
||||
fun getTitle(context: Context): String {
|
||||
return title ?: context.resources.getString(titleResource ?: R.string.StickerManagementAdapter_untitled)
|
||||
|
||||
Reference in New Issue
Block a user