У меня есть расширение EditText, где я слушаю события с клавиатуры EditText. Мне нужно знать, когда пользователь нажимает любую кнопку, чтобы показать (или не показать) ошибку. Поэтому я делаю Observable для клавиш (rxbinding2) и получаю любое нажатие, но когда я нажимаю кнопку «Назад» и курсор все еще в этом методе EditText, onBackPressed не работает.
Как отфильтровать на спине нажатых?
fun EditText.changeWithFormatting(formatter: (String) -> String): Observable<String> {
return Observable.merge(
afterTextChangeEvents()
.map { editableText },
keys()
.filter { it.action == KeyEvent.ACTION_UP }
.map { editableText }
)
.map { changeText(formatter(it.toString())) }
}