diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt index 4b0b8bdfdd907e1fe2de4311e9ab8b8dbd29e76a..98c1dbe6999916354d61afa5b0467e0b15abb7f7 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/ChatlineFragment.kt @@ -155,6 +155,7 @@ class ChatlineFragment : ServiceBoundFragment() { chatline.setText("") } + editorHelper.setOnEnterListener(::send) send.setOnClickListener { send() } tabComplete.visibleIf(autoCompleteSettings.button) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/EditorHelper.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/EditorHelper.kt index a16dd2f1e409dd428baa700d1cf55ffa4cc6c565..2deefe127386ee1e8979550f63d1bc665cf3a560 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/EditorHelper.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/EditorHelper.kt @@ -48,13 +48,10 @@ class EditorHelper( val previous = autoCompleteHelper.autoCompletionState val next = if (previous != null && s != null) { val suffix = if (previous.range.start == 0) ": " else " " - val end = Math.min( - s.length, previous.range.start + previous.completion.name.length + suffix.length - ) - val sequence = if (end < previous.range.start) "" - else s.substring(previous.range.start, end) + val sequence = if (s.length < previous.range.start) "" + else s.substring(previous.range.start) if (sequence == previous.completion.name + suffix) { - previous.originalWord to (previous.range.start until end) + previous.originalWord to (previous.range.start until s.length) } else { autoCompleteHelper.autoCompletionState = null s.lastWordIndices(editText.selectionStart, onlyBeforeCursor = true)?.let { indices -> @@ -167,6 +164,10 @@ class EditorHelper( }.fold(0, Int::or) } + fun setOnEnterListener(listener: (() -> Unit)?) { + this.enterListener = listener + } + fun setMultiLine(enabled: Boolean) = editText.setMultiLine(enabled) fun replaceText(text: CharSequence?) = editText.replace(text)