Skip to content

Instantly share code, notes, and snippets.

View ragdroid's full-sized avatar
🤪

Garima Jain ragdroid

🤪
View GitHub Profile
@ragdroid
ragdroid / Zippyosa.java
Created August 10, 2016 14:28
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)
@ragdroid
ragdroid / ZippyosaGist.java
Created August 10, 2016 14:40
Rxify - Droidcon 2016 Example of using a zip() RxJava operator Raw
//Preparing a polyjuice? Simple cast the spell - 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();
@ragdroid
ragdroid / YuleBallDance.java
Created August 11, 2016 20:27
Zip - combine stream of Objects
//It's zip-yOsa not zip-yosAR
Observable<DanceCouple> getYuleDanceCoupleObservable() {
Observable<Champion> championsObservable = getChampionsObservable();
Observable<Partner> partnerObservable = getPartnerObservable();
return championsObservable.zipWith(partnerObservable, new Func2<Champion, Partner, DanceCouple>() {
@Override
public DanceCouple call(Champion champion, Partner partner) {
return new DanceCouple(champion, partner).dance();
}
});
@ragdroid
ragdroid / Concatify.java
Created August 14, 2016 13:27
Concat operator - Droidcon 2016
//concatify
Observable<Student> concatify() {
Observable<Student> slytherinObservable = getObservable(House.SLYTHERIN);
Observable<Student> huffleObervable = getObservable(House.HUFFLEPUFF);
Observable<Student> ravenObservable = getObservable(House.RAVENCLAW);
Observable<Student> gryffindorObservable = getObservable(House.GRYFFINDOR);
return Observable.concat(
slytherinObservable,
huffleObervable,
@ragdroid
ragdroid / Concatify.java
Created August 14, 2016 16:14
Concat() operator to hit the cache first - Droidcon 2016
//Concatify spell
Observable<List<Lecture>> getLectures() {
Observable<List<Lecture>> cacheObservable = getLecturesFromCache();
Observable<List<Lecture>> lecturesFromServer = getLecturesFromServer();
return cacheObservable.concatWith(lecturesFromServer)
.take(1);
}
@ragdroid
ragdroid / Buffer.java
Last active August 21, 2016 18:33
Buffer - Droidcon 2016, buffer analytics events to optimize network traffic
//buffer analytics events to optimize network traffic
public Observable<TrackRequest> bufferundum() {
return getUserEventsObservable()
.buffer(3) //buffer count
.flatMap(new Func1<List<Event>, Observable<TrackRequest>>() {
@Override
public Observable<TrackRequest> call(final List<Event> events) {
return Observable.just(new TrackRequest(events));
}
@ragdroid
ragdroid / AutoSearch.java
Created August 21, 2016 18:01
AutoSearch - debounce the search terms Droidcon 2016
//AutoSearch using debounce spell
public Observable<SearchRequest> autoSearch() {
return getSearchtermObservable()
.debounce(500, TimeUnit.MILLISECONDS)
.flatMap(new Func1<String, Observable<SearchRequest>>() {
@Override
public Observable<SearchRequest> call(String term) {
return Observable.just(new SearchRequest(term));
}
});
@ragdroid
ragdroid / Boggart.java
Last active September 7, 2016 20:59
Example of Rxjava retry and repeat operator - DroidconIN 2016
private class Boggart {
private static final int MAX_LAUGHTER_LEVEL = 10;
private static final int MIN_LAUNGHTER_LEVEL = 0;
private static final int LAUGHTER_FUNNY_THRESHOLD = 5;
private static final int LAUGHTER_HILARIOUS_THRESH = 7;
private int laughterLevel;
public Boggart() {
init();
@ragdroid
ragdroid / Riddikulus.java
Last active September 7, 2016 21:04
Example of RxJava repeat and retry operators - DroidconIN 2016
// Example of repeat and retry
private Observable<Boggart> riddikulus() {
return getBoggartObservable()
.flatMap(new Func1<Boggart, Observable<Boggart>>() {
@Override
public Observable<Boggart> call(Boggart boggart) {
boggart.init();
boggart.riddikulus();
if (boggart.isFunny()) {
@ragdroid
ragdroid / Retry.java
Created September 7, 2016 21:37
Retry when IOException example DroidconIN 2016
//Retry when IOException
Observable<UserResponse> getUserFromServer() {
return userService.getUserFromServer()
.retryWhen(new Func1<Observable<? extends Throwable>, Observable<?>>() {
@Override
public Observable<?> call(Observable<? extends Throwable> observable) {
return observable.flatMap(new Func1<Throwable, Observable<?>>() {
@Override
public Observable<?> call(Throwable throwable) {