package com.trello.rxlifecycle;
import rx.Observable;
import rx.Single;
import javax.annotation.Nonnull;
/**
* Continues a subscription until it sees *any* lifecycle event.
*/
final class UntilLifecycleSingleTransformer<T, R> implements Single.Transformer<T, T> {
final Observable<R> lifecycle;
public UntilLifecycleSingleTransformer(@Nonnull Observable<R> lifecycle) {
this.lifecycle = lifecycle;
}
@Override
public Single<T> call(Single<T> source) {
return source.takeUntil(lifecycle);
}
@Override
public boolean equals(Object o) {
if (this == o) { return true; }
if (o == null || getClass() != o.getClass()) { return false; }
UntilLifecycleSingleTransformer<?, ?> that = (UntilLifecycleSingleTransformer<?, ?>) o;
return lifecycle.equals(that.lifecycle);
}
@Override
public int hashCode() {
return lifecycle.hashCode();
}
@Override
public String toString() {
return "UntilLifecycleSingleTransformer{" +
"lifecycle=" + lifecycle +
'}';
}
}