Slide 18
Slide 18 text
Processing Intents: Transformation
private fun bindIntent(viewIntents: Observable): Observable {
val transformedIntents = viewIntents.publish {
val buttonClicked = it.ofType(ButtonClicked::class.java)
.debounce(300, TimeUnit.MILLISECONDS)
.switchMap {
ThrowErrorUseCase.execute()
.map { NoOp }
.onErrorReturn { Error(throwable = it) }
.startWith(Loading)
}
….
Observable.merge(
buttonClicked,
…
)
}
return Observable.merge(transformedIntents, … , …)
}