package com.florianmski.tracktoid.rx.observables; import rx.Observable; import rx.functions.Func1; public class TraktFallbackTransformer<T> implements Observable.Transformer<T, T> { private TraktObservable<T> traktObservable; public TraktFallbackTransformer(TraktObservable<T> traktObservable) { this.traktObservable = traktObservable; } @Override public Observable<T> call(Observable<T> tObservable) { return tObservable.flatMap(new Func1<T, Observable<T>>() { @Override public Observable<T> call(T t) { if(t == null) return Observable.create(traktObservable); else return Observable.just(t); } }); } }