Skip to content

Commit

Permalink
Use setter for media span listeners. Clear task list refresh listener…
Browse files Browse the repository at this point in the history
… when aztec is destroyed.
  • Loading branch information
khaykov committed Jul 25, 2024
1 parent 5b0653e commit 9dc1510
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions aztec/src/main/kotlin/org/wordpress/aztec/AztecText.kt
Original file line number Diff line number Diff line change
Expand Up @@ -955,6 +955,7 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
blockEditorDialog!!.dismiss()
}
EnhancedMovementMethod.setLinkTappedListener(null)
clearTaskListRefreshListeners()
}

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

val videoSpans = editable.getSpans(start, end, AztecVideoSpan::class.java)
videoSpans.forEach {
it.onVideoTappedListener = onVideoTappedListener
it.onMediaDeletedListener = onMediaDeletedListener
it.setOnMediaDeletedListener(onMediaDeletedListener)
}

val audioSpans = editable.getSpans(start, end, AztecAudioSpan::class.java)
audioSpans.forEach {
it.onAudioTappedListener = onAudioTappedListener
it.onMediaDeletedListener = onMediaDeletedListener
it.setOnMediaDeletedListener(onMediaDeletedListener)
}

val unknownHtmlSpans = editable.getSpans(start, end, UnknownHtmlSpan::class.java)
Expand Down Expand Up @@ -1763,9 +1764,9 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
taskList.onRefresh = null
this.editableText.removeSpan(taskList)
val newSpan = if (taskList is AztecTaskListSpanAligned) {
AztecTaskListSpanAligned(taskList.nestingLevel, taskList.attributes, taskList.context, taskList.listStyle, taskList.align)
AztecTaskListSpanAligned(taskList.nestingLevel, taskList.attributes, context, taskList.listStyle, taskList.align)
} else {
AztecTaskListSpan(taskList.nestingLevel, taskList.attributes, taskList.context, taskList.listStyle)
AztecTaskListSpan(taskList.nestingLevel, taskList.attributes, context, taskList.listStyle)
}
newSpan.onRefresh = {
refreshTaskListSpan(it)
Expand All @@ -1774,6 +1775,13 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
setSelection(selStart, selEnd)
}

private fun clearTaskListRefreshListeners() {
val taskLists = this.editableText.getSpans(0, this.editableText.length, AztecTaskListSpan::class.java)
taskLists.forEach { taskList ->
taskList.onRefresh = null
}
}

fun disableTextChangedListener() {
consumeEditEvent = true
}
Expand Down Expand Up @@ -2217,7 +2225,7 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
* Use this method to insert a custom AztecMediaSpan at the cursor position
*/
fun insertMediaSpan(span: AztecMediaSpan) {
span.onMediaDeletedListener = onMediaDeletedListener
span.setOnMediaDeletedListener(onMediaDeletedListener)
lineBlockFormatter.insertMediaSpan(shouldAddMediaInline, span)
}

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

text.removeSpan(clickableSpan)
text.removeSpan(mediaSpan)
aztecMediaSpan.onMediaDeletedListener = onMediaDeletedListener
aztecMediaSpan.setOnMediaDeletedListener(onMediaDeletedListener)
lineBlockFormatter.insertMediaSpanOverCurrentChar(aztecMediaSpan, start)
contentChangeWatcher.notifyContentChanged()
}
Expand Down

0 comments on commit 9dc1510

Please sign in to comment.