package com.hannesdorfmann.mosby3.mvi;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.subjects.BehaviorSubject;
/**
* Just a simple {@link DisposableObserver} that is used to cancel subscriptions from view's
* state to the internal relays
*/
class DisposableViewStateObserver<VS> extends DisposableObserver<VS> {
private final BehaviorSubject<VS> subject;
public DisposableViewStateObserver(BehaviorSubject<VS> subject) {
this.subject = subject;
}
@Override public void onNext(VS value) {
subject.onNext(value);
}
@Override public void onError(Throwable e) {
throw new IllegalStateException(
"ViewState observable must not reach error state - onError()", e);
}
@Override public void onComplete() {
// ViewState observable never completes so ignore any complete event
}
}