editText.setOnEditorActionListener(TextView.OnEditorActionListener { _, actionId, keyEvent ->
if (actionId == EditorInfo.IME_ACTION_DONE || keyEvent?.keyCode == KeyEvent.KEYCODE_ENTER) {
userEnteredQuery(editText.text.toString())
return@OnEditorActionListener true
}
false
})
editText.addTextChangedListener(object : TextWatcher {
override fun onTextChanged(
charSequence: CharSequence,
start: Int,
before: Int,
count: Int
) {
// some 3rd party keyboards submit \n instead of an IME action
if (before == 0 && count == 1 && charSequence[start] == '\n') {
editText.text.replace(start, start + 1, "")
userEnteredQuery(editText.text.toString())
}
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun afterTextChanged(editable: Editable) {}
})