События 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
    })

Любая помощь высоко ценится. Благодарность!

0 ответов