package com.kickstarter.libs.rx.transformers;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import rx.Observable;
import rx.functions.Action1;
public final class NeverErrorTransformer<T> implements Observable.Transformer<T, T> {
private final @Nullable Action1<Throwable> errorAction;
protected NeverErrorTransformer() {
this.errorAction = null;
}
protected NeverErrorTransformer(final @Nullable Action1<Throwable> errorAction) {
this.errorAction = errorAction;
}
@Override
@NonNull public Observable<T> call(final @NonNull Observable<T> source) {
return source
.doOnError(e -> {
if (errorAction != null) {
errorAction.call(e);
}
})
.onErrorResumeNext(Observable.empty());
}
}