@@ -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