From 0f0d3d28a739b61602adbab2aba894b11edd3464 Mon Sep 17 00:00:00 2001 From: Naveen Singh <36371707+naveensingh@users.noreply.github.com> Date: Sun, 6 Jul 2025 12:32:59 +0530 Subject: [PATCH] fix: clear spans on paste (#152) * fix: clear spans on paste See: https://github.com/FossifyOrg/Notes/issues/150 * style: add empty line --- .../kotlin/org/fossify/notes/extensions/EditText.kt | 13 +++++++++++++ .../org/fossify/notes/fragments/TextFragment.kt | 3 +++ 2 files changed, 16 insertions(+) create mode 100644 app/src/main/kotlin/org/fossify/notes/extensions/EditText.kt diff --git a/app/src/main/kotlin/org/fossify/notes/extensions/EditText.kt b/app/src/main/kotlin/org/fossify/notes/extensions/EditText.kt new file mode 100644 index 00000000..7642f372 --- /dev/null +++ b/app/src/main/kotlin/org/fossify/notes/extensions/EditText.kt @@ -0,0 +1,13 @@ +package org.fossify.notes.extensions + +import android.text.InputFilter +import android.text.Spanned +import org.fossify.commons.views.MyEditText + +fun MyEditText.enforcePlainText() { + val stripSpans = InputFilter { source, start, end, _, _, _ -> + val sub = source.subSequence(start, end) + if (sub is Spanned) sub.toString() else sub + } + filters = (filters ?: emptyArray()) + stripSpans +} diff --git a/app/src/main/kotlin/org/fossify/notes/fragments/TextFragment.kt b/app/src/main/kotlin/org/fossify/notes/fragments/TextFragment.kt index bf7ebcdd..adfd79b1 100644 --- a/app/src/main/kotlin/org/fossify/notes/fragments/TextFragment.kt +++ b/app/src/main/kotlin/org/fossify/notes/fragments/TextFragment.kt @@ -27,6 +27,7 @@ import org.fossify.notes.databinding.FragmentTextBinding import org.fossify.notes.databinding.NoteViewHorizScrollableBinding import org.fossify.notes.databinding.NoteViewStaticBinding import org.fossify.notes.extensions.config +import org.fossify.notes.extensions.enforcePlainText import org.fossify.notes.extensions.getPercentageFontSize import org.fossify.notes.extensions.updateWidgets import org.fossify.notes.helpers.MyMovementMethod @@ -67,6 +68,8 @@ class TextFragment : NoteFragment() { noteEditText = textNoteView } } + + noteEditText.enforcePlainText() if (config!!.clickableLinks) { noteEditText.apply { linksClickable = true