Skip to content

Commit c804d18

Browse files
fix: creating image span on Android
1 parent 5fed737 commit c804d18

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

android/src/main/java/com/swmansion/enriched/styles/ParametrizedStyles.kt

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -174,23 +174,24 @@ class ParametrizedStyles(private val view: EnrichedTextInputView) {
174174
if (view.selection == null) return
175175

176176
val spannable = view.text as SpannableStringBuilder
177-
var (start, end) = view.selection.getInlineSelection()
178-
val spans = spannable.getSpans(start, end, EnrichedImageSpan::class.java)
177+
val (start, originalEnd) = view.selection.getInlineSelection()
179178

180-
for (s in spans) {
181-
spannable.removeSpan(s)
182-
}
183-
184-
if (start == end) {
179+
if (start == originalEnd) {
185180
spannable.insert(start, "\uFFFC")
186-
end++
181+
} else {
182+
val spans = spannable.getSpans(start, originalEnd, EnrichedImageSpan::class.java)
183+
for (s in spans) {
184+
spannable.removeSpan(s)
185+
}
186+
187+
spannable.replace(start, originalEnd, "\uFFFC")
187188
}
188189

190+
val imageEnd = start + 1;
189191
val uri = Uri.fromFile(File(src))
190192

191193
val span = EnrichedImageSpan(view.context, uri, width.toInt(), height.toInt())
192-
val (safeStart, safeEnd) = spannable.getSafeSpanBoundaries(start, end)
193-
spannable.setSpan(span, safeStart, safeEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
194+
spannable.setSpan(span, start, imageEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
194195
}
195196

196197
fun startMention(indicator: String) {

0 commit comments

Comments
 (0)