I'm a little confused about RendezvousChannel. I g...
# coroutines
e
I'm a little confused about RendezvousChannel. I get a channel that emits when the text changes in an Android EditText (I'm using the CoroutineBinding library):
Copy code
fun 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)
}