Skip to content

Instantly share code, notes, and snippets.

@ragdroid
Created August 10, 2016 14:28
Show Gist options
  • Save ragdroid/2e0860ef29a9c2397dd852ec4ddd7495 to your computer and use it in GitHub Desktop.
Save ragdroid/2e0860ef29a9c2397dd852ec4ddd7495 to your computer and use it in GitHub Desktop.
Rxify - Droidcon 2016 Example of using a zip() RxJava operator
//Preparing a polyjuice? Simple cast the spell - Zippyosa !!
public class Zippyosa {
Observable<PolyJuice> getPolyJuiceObservable() {
Observable<FluxWeed> ronObservable = getFluxWeedObservable();
Observable<CrabHair> harryObservable = getHairObservable();
return Observable.zip(ronObservable, harryObservable, new Func2<FluxWeed, CrabHair, PolyJuice>() {
@Override
public PolyJuice call(final FluxWeed fluxWeed, final CrabHair crabHair) {
return new PolyJuice(fluxWeed, crabHair)
.prepare();
}
});
}
private Observable<CrabHair> getHairObservable() {
return Observable.just(new CrabHair());
}
private Observable<FluxWeed> getFluxWeedObservable() {
return Observable.just(new FluxWeed());
}
private class PolyJuice {
FluxWeed weed;
CrabHair hair;
PolyJuice(FluxWeed weed, CrabHair hair) {
this.weed = weed;
this.hair = hair;
}
public PolyJuice prepare() {
//do some complex stuff
return this;
}
}
private class FluxWeed {
}
private class CrabHair {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment