Skip to content

Commit f9446e1

Browse files
committed
Add media span update method
1 parent 0f9312c commit f9446e1

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

app/src/main/kotlin/org/wordpress/aztec/demo/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ class MainActivity : AppCompatActivity(),
197197
attrs.setValue("id", id)
198198
attrs.setValue("uploading", "true")
199199

200-
aztec.insertMedia(BitmapDrawable(resources, bitmap), attrs)
200+
val mediaSpan = aztec.insertMedia(BitmapDrawable(resources, bitmap), attrs)
201201

202202
val predicate = object : AztecText.AttributePredicate {
203203
override fun matches(attrs: Attributes): Boolean {
@@ -221,7 +221,7 @@ class MainActivity : AppCompatActivity(),
221221
val runnable: Runnable = Runnable {
222222
aztec.setOverlayLevel(predicate, 1, progress)
223223
aztec.updateElementAttributes(predicate, attrs)
224-
aztec.refreshText()
224+
aztec.updateMediaSpan(mediaSpan)
225225
progress += 2000
226226

227227
if (progress >= 10000) {

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,8 +1022,8 @@ class AztecText : android.support.v7.widget.AppCompatEditText, TextWatcher, Unkn
10221022
}
10231023
}
10241024

1025-
fun insertMedia(drawable: Drawable?, attributes: Attributes) {
1026-
lineBlockFormatter.insertMedia(drawable, attributes, onMediaTappedListener)
1025+
fun insertMedia(drawable: Drawable?, attributes: Attributes): AztecMediaSpan {
1026+
return lineBlockFormatter.insertMedia(drawable, attributes, onMediaTappedListener)
10271027
}
10281028

10291029
fun removeMedia(attributePredicate: AttributePredicate) {
@@ -1059,6 +1059,10 @@ class AztecText : android.support.v7.widget.AppCompatEditText, TextWatcher, Unkn
10591059
.firstOrNull()?.attributes = attrs
10601060
}
10611061

1062+
fun updateMediaSpan(mediaSpan: AztecMediaSpan) {
1063+
editableText.setSpan(mediaSpan, text.getSpanStart(mediaSpan), text.getSpanEnd(mediaSpan), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
1064+
}
1065+
10621066
fun setOverlayLevel(attributePredicate: AttributePredicate, index: Int, level: Int) {
10631067
text.getSpans(0, text.length, AztecMediaSpan::class.java)
10641068
.filter {

aztec/src/main/kotlin/org/wordpress/aztec/formatting/LineBlockFormatter.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class LineBlockFormatter(editor: AztecText) : AztecFormatter(editor) {
118118
if (selectionEnd < EndOfBufferMarkerAdder.safeLength(editor)) selectionEnd + 1 else selectionEnd)
119119
}
120120

121-
fun insertMedia(drawable: Drawable?, attributes: Attributes, onMediaTappedListener: OnMediaTappedListener?) {
121+
fun insertMedia(drawable: Drawable?, attributes: Attributes, onMediaTappedListener: OnMediaTappedListener?): AztecMediaSpan {
122122
val span = AztecMediaSpan(editor.context, drawable, AztecAttributes(attributes), onMediaTappedListener, editor)
123123

124124
val spanBeforeMedia = editableText.getSpans(selectionStart, selectionEnd, AztecBlockSpan::class.java)
@@ -164,5 +164,7 @@ class LineBlockFormatter(editor: AztecText) : AztecFormatter(editor) {
164164

165165
editor.setSelection(mediaEndIndex)
166166
editor.isMediaAdded = true
167+
168+
return span
167169
}
168170
}

0 commit comments

Comments
 (0)