com.hannesdorfmann.mosby3.mvi.DisposableViewStateObserver Maven / Gradle / Ivy
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 extends DisposableObserver {
private final BehaviorSubject subject;
public DisposableViewStateObserver(BehaviorSubject 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
}
}