From 70b82194e1e03f09f048e28ecc8bfa24bfc8b5a2 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Wed, 19 Mar 2025 22:00:36 +0100 Subject: [PATCH] Fixed multiline pasting for checklist (#99) --- .../notes/dialogs/NewChecklistItemDialog.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/fossify/notes/dialogs/NewChecklistItemDialog.kt b/app/src/main/kotlin/org/fossify/notes/dialogs/NewChecklistItemDialog.kt index 9f57ac2f..5b617114 100644 --- a/app/src/main/kotlin/org/fossify/notes/dialogs/NewChecklistItemDialog.kt +++ b/app/src/main/kotlin/org/fossify/notes/dialogs/NewChecklistItemDialog.kt @@ -57,7 +57,7 @@ class NewChecklistItemDialog(val activity: Activity, callback: (titles: ArrayLis } } - private fun addNewEditText() { + private fun addNewEditText(initialText: String? = null) { ItemAddChecklistBinding.inflate(activity.layoutInflater).apply { titleEditText.setOnEditorActionListener { _, actionId, _ -> if (actionId == EditorInfo.IME_ACTION_NEXT || actionId == EditorInfo.IME_ACTION_DONE || actionId == KeyEvent.KEYCODE_ENTER) { @@ -67,6 +67,21 @@ class NewChecklistItemDialog(val activity: Activity, callback: (titles: ArrayLis false } } + titleEditText.onTextChangeListener { text -> + val lines = text.split("\n").filter { it.trim().isNotEmpty() } + if (lines.size > 1) { + lines.forEachIndexed { i, line -> + if (i == 0) { + titleEditText.setText(line) + } else { + addNewEditText(line) + } + } + } + } + if (initialText != null) { + titleEditText.setText(initialText) + } titles.add(titleEditText) binding.checklistHolder.addView(this.root) activity.updateTextColors(binding.checklistHolder)