Advertisement
Guest User

Untitled

a guest
Nov 8th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.70 KB | None | 0 0
  1.     protected val <T> StateCommand<T>.consumer: Consumer<T> get() = relay
  2.  
  3.     inner class StateCommand<T>(
  4.             isIdle: Observable<Boolean>? = null
  5.     ) {
  6.         internal val relay = PublishRelay.create<T>().toSerialized()
  7.  
  8.         var bufferedValue: T? = null
  9.             private set
  10.  
  11.         private val bufferSize = 1
  12.  
  13.         val observable =
  14.                 (if (isIdle == null) {
  15.                     relay.bufferWhileUnbind(bufferSize)
  16.                 } else {
  17.                     relay.bufferWhileIdle(isIdle, bufferSize)
  18.                 })
  19.                         .doOnNext { bufferedValue = it }
  20.                         .publish()
  21.                         .apply { connect() }
  22.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement