package com.progscrape.app.rx;
import rx.Observable;
import rx.Observer;
import rx.functions.Func1;
import rx.subjects.Subject;
public class RefreshableRemoteData<T> extends RemoteData<T> {
private Subject<Void, Void> refresh;
public RefreshableRemoteData(Observable<T> data, Observable<RemoteStatus> network, Subject<Void, Void> refresh) {
super(data, network);
this.refresh = refresh;
}
public void refresh() {
refresh.onNext(null);
}
public <X> RefreshableRemoteData<X> map(Func1<T, X> fn) {
return new RefreshableRemoteData<>(getData().map(fn), getNetwork(), refresh);
}
}