События Delete и NewLine не получены в клавиатуре Samsung с фильтром ввода - Android
Я работаю над проектом, в котором мне нужно получать события клавиатуры из пользовательского представления (не EditText). Чтобы открыть клавиатуру, мы перезаписалиonCreateInputConnection()
метод View и прошел BaseInputConnection()
как InputConnection. И InputFilter прикреплен к Editable внутри InputConnection.
В GBoard все работает нормально. Но когда дело доходит до Samsung Keyboard или Swipe-клавиатуры, некоторые функции не работают. Например, события Delete и NewLine не передаются в InputFilter на клавиатуре Samsung. В SwiftKey Keyboard удаление работает, но NewLine не работает.
onCreateInputConnection()
код
override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection {
outAttrs.inputType =
InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES or InputType.TYPE_TEXT_FLAG_MULTI_LINE
outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI
outAttrs.initialSelStart = 0
outAttrs.initialSelEnd = 0
return BaseInputConnection(this, true)
}
InputFilter
код
inputConnection.editable.filters = arrayOf(InputFilter { source, start, end, dest, dstart, dend ->
null
})
Любая помощь высоко ценится. Благодарность!