Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected val <T> StateCommand<T>.consumer: Consumer<T> get() = relay
- inner class StateCommand<T>(
- isIdle: Observable<Boolean>? = null
- ) {
- internal val relay = PublishRelay.create<T>().toSerialized()
- var bufferedValue: T? = null
- private set
- private val bufferSize = 1
- val observable =
- (if (isIdle == null) {
- relay.bufferWhileUnbind(bufferSize)
- } else {
- relay.bufferWhileIdle(isIdle, bufferSize)
- })
- .doOnNext { bufferedValue = it }
- .publish()
- .apply { connect() }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement