package com.kickstarter.libs.rx.transformers; import android.support.annotation.NonNull; import com.kickstarter.libs.utils.ThreadUtils; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; public final class ObserveForUITransformer<T> implements Observable.Transformer<T, T> { @Override public @NonNull Observable<T> call(final @NonNull Observable<T> source) { return source.flatMap(value -> { if (ThreadUtils.isMainThread()) { return Observable.just(value).observeOn(Schedulers.immediate()); } else { return Observable.just(value).observeOn(AndroidSchedulers.mainThread()); } }); } }