Skip to content

Commit 12401d0

Browse files
committed
Fix leak in media span.
1 parent db247eb commit 12401d0

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

aztec/src/main/kotlin/org/wordpress/aztec/spans/AztecMediaSpan.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,18 @@ import java.lang.ref.WeakReference
1111
import java.util.ArrayList
1212

1313
abstract class AztecMediaSpan(drawable: Drawable?, override var attributes: AztecAttributes = AztecAttributes(),
14-
var onMediaDeletedListener: AztecText.OnMediaDeletedListener? = null,
14+
onMediaDeletedListener: AztecText.OnMediaDeletedListener? = null,
1515
editor: AztecText? = null) : AztecDynamicImageSpan(drawable), IAztecAttributedSpan {
1616
abstract val TAG: String
1717

1818
private val overlays: ArrayList<Pair<Drawable?, Int>> = ArrayList()
1919

20+
private var onMediaDeletedListenerRef = WeakReference(onMediaDeletedListener)
21+
22+
fun setOnMediaDeletedListener(listener: AztecText.OnMediaDeletedListener?) {
23+
onMediaDeletedListenerRef = WeakReference(listener)
24+
}
25+
2026
init {
2127
textView = editor?.let { WeakReference(editor) }
2228
}
@@ -96,9 +102,9 @@ abstract class AztecMediaSpan(drawable: Drawable?, override var attributes: Azte
96102
abstract fun onClick()
97103

98104
fun onMediaDeleted() {
99-
onMediaDeletedListener?.onMediaDeleted(attributes)
105+
onMediaDeletedListenerRef.get()?.onMediaDeleted(attributes)
100106
}
101107
fun beforeMediaDeleted() {
102-
onMediaDeletedListener?.beforeMediaDeleted(attributes)
108+
onMediaDeletedListenerRef.get()?.beforeMediaDeleted(attributes)
103109
}
104110
}

0 commit comments

Comments
 (0)