Skip to content

Commit 9dc1510

Browse files
committed
Use setter for media span listeners. Clear task list refresh listener when aztec is destroyed.
1 parent 5b0653e commit 9dc1510

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

aztec/src/main/kotlin/org/wordpress/aztec/AztecText.kt

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -955,6 +955,7 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
955955
blockEditorDialog!!.dismiss()
956956
}
957957
EnhancedMovementMethod.setLinkTappedListener(null)
958+
clearTaskListRefreshListeners()
958959
}
959960

960961
// We are exposing this method in order to allow subclasses to set their own alpha value
@@ -1711,19 +1712,19 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
17111712
val imageSpans = editable.getSpans(start, end, AztecImageSpan::class.java)
17121713
imageSpans.forEach {
17131714
it.onImageTappedListener = onImageTappedListener
1714-
it.onMediaDeletedListener = onMediaDeletedListener
1715+
it.setOnMediaDeletedListener(onMediaDeletedListener)
17151716
}
17161717

17171718
val videoSpans = editable.getSpans(start, end, AztecVideoSpan::class.java)
17181719
videoSpans.forEach {
17191720
it.onVideoTappedListener = onVideoTappedListener
1720-
it.onMediaDeletedListener = onMediaDeletedListener
1721+
it.setOnMediaDeletedListener(onMediaDeletedListener)
17211722
}
17221723

17231724
val audioSpans = editable.getSpans(start, end, AztecAudioSpan::class.java)
17241725
audioSpans.forEach {
17251726
it.onAudioTappedListener = onAudioTappedListener
1726-
it.onMediaDeletedListener = onMediaDeletedListener
1727+
it.setOnMediaDeletedListener(onMediaDeletedListener)
17271728
}
17281729

17291730
val unknownHtmlSpans = editable.getSpans(start, end, UnknownHtmlSpan::class.java)
@@ -1763,9 +1764,9 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
17631764
taskList.onRefresh = null
17641765
this.editableText.removeSpan(taskList)
17651766
val newSpan = if (taskList is AztecTaskListSpanAligned) {
1766-
AztecTaskListSpanAligned(taskList.nestingLevel, taskList.attributes, taskList.context, taskList.listStyle, taskList.align)
1767+
AztecTaskListSpanAligned(taskList.nestingLevel, taskList.attributes, context, taskList.listStyle, taskList.align)
17671768
} else {
1768-
AztecTaskListSpan(taskList.nestingLevel, taskList.attributes, taskList.context, taskList.listStyle)
1769+
AztecTaskListSpan(taskList.nestingLevel, taskList.attributes, context, taskList.listStyle)
17691770
}
17701771
newSpan.onRefresh = {
17711772
refreshTaskListSpan(it)
@@ -1774,6 +1775,13 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
17741775
setSelection(selStart, selEnd)
17751776
}
17761777

1778+
private fun clearTaskListRefreshListeners() {
1779+
val taskLists = this.editableText.getSpans(0, this.editableText.length, AztecTaskListSpan::class.java)
1780+
taskLists.forEach { taskList ->
1781+
taskList.onRefresh = null
1782+
}
1783+
}
1784+
17771785
fun disableTextChangedListener() {
17781786
consumeEditEvent = true
17791787
}
@@ -2217,7 +2225,7 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
22172225
* Use this method to insert a custom AztecMediaSpan at the cursor position
22182226
*/
22192227
fun insertMediaSpan(span: AztecMediaSpan) {
2220-
span.onMediaDeletedListener = onMediaDeletedListener
2228+
span.setOnMediaDeletedListener(onMediaDeletedListener)
22212229
lineBlockFormatter.insertMediaSpan(shouldAddMediaInline, span)
22222230
}
22232231

@@ -2323,7 +2331,7 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
23232331

23242332
text.removeSpan(clickableSpan)
23252333
text.removeSpan(mediaSpan)
2326-
aztecMediaSpan.onMediaDeletedListener = onMediaDeletedListener
2334+
aztecMediaSpan.setOnMediaDeletedListener(onMediaDeletedListener)
23272335
lineBlockFormatter.insertMediaSpanOverCurrentChar(aztecMediaSpan, start)
23282336
contentChangeWatcher.notifyContentChanged()
23292337
}

0 commit comments

Comments
 (0)