eygraber
07/23/2019, 9:47 PMfun TextView.textChanges(capacity: Int = 0): ReceiveChannel<CharSequence> = cancelableChannel(capacity) {
val listener = object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
safeOffer(s)
}
}
invokeOnCloseOnMain {
removeTextChangedListener(listener)
}
addTextChangedListener(listener)
}