From 59dfe9c5c2e884039d51541e5abe6cd9777a3088 Mon Sep 17 00:00:00 2001 From: Igor Furgala Date: Mon, 1 Sep 2025 14:19:39 +0200 Subject: [PATCH 1/2] fix: pasting incompatible text --- .../com/swmansion/enriched/EnrichedTextInputView.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt b/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt index d8a38681a..2d73589e3 100644 --- a/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt +++ b/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt @@ -194,10 +194,12 @@ class EnrichedTextInputView : AppCompatEditText { val end = selection?.end ?: 0 if (htmlText != null) { - val parsedText = parseText(htmlText) as Spannable - val finalText = currentText.mergeSpannables(start, end, parsedText) - setValue(finalText) - return + val parsedText = parseText(htmlText) + if (parsedText is Spannable) { + val finalText = currentText.mergeSpannables(start, end, parsedText) + setValue(finalText) + return + } } val finalText = currentText.mergeSpannables(start, end, item?.text.toString()) From fdd878ab80bf092403768a9ff62baa0b41b972cd Mon Sep 17 00:00:00 2001 From: Igor Furgala Date: Mon, 1 Sep 2025 14:26:23 +0200 Subject: [PATCH 2/2] chore: super safe --- .../com/swmansion/enriched/EnrichedTextInputView.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt b/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt index 2d73589e3..e2e5c6adf 100644 --- a/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt +++ b/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt @@ -217,9 +217,14 @@ class EnrichedTextInputView : AppCompatEditText { val isHtml = text.startsWith("") && text.endsWith("") if (!isHtml) return text - val parsed = EnrichedParser.fromHtml(text.toString(), htmlStyle, null) - val withoutLastNewLine = parsed.trimEnd('\n') - return withoutLastNewLine + try { + val parsed = EnrichedParser.fromHtml(text.toString(), htmlStyle, null) + val withoutLastNewLine = parsed.trimEnd('\n') + return withoutLastNewLine + } catch (e: Exception) { + Log.e("EnrichedTextInputView", "Error parsing HTML: ${e.message}") + return text + } } fun setValue(value: CharSequence?) {