package io.reactivex.internal.operators.observable; import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.Exceptions; import io.reactivex.functions.Function; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.disposables.SequentialDisposable; import io.reactivex.internal.functions.ObjectHelper; import io.reactivex.internal.operators.observable.ObservableTimeoutTimed; import io.reactivex.plugins.RxJavaPlugins; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes2.dex */ public final class ObservableTimeout extends AbstractObservableWithUpstream { final ObservableSource b; final Function> c; final ObservableSource d; static final class TimeoutConsumer extends AtomicReference implements Observer, Disposable { final TimeoutSelectorSupport a; final long b; TimeoutConsumer(long j, TimeoutSelectorSupport timeoutSelectorSupport) { this.b = j; this.a = timeoutSelectorSupport; } @Override // io.reactivex.disposables.Disposable public void dispose() { DisposableHelper.dispose(this); } @Override // io.reactivex.Observer public void onComplete() { Object obj = get(); DisposableHelper disposableHelper = DisposableHelper.DISPOSED; if (obj != disposableHelper) { lazySet(disposableHelper); this.a.a(this.b); } } @Override // io.reactivex.Observer public void onError(Throwable th) { Object obj = get(); DisposableHelper disposableHelper = DisposableHelper.DISPOSED; if (obj == disposableHelper) { RxJavaPlugins.b(th); } else { lazySet(disposableHelper); this.a.a(this.b, th); } } @Override // io.reactivex.Observer public void onNext(Object obj) { Disposable disposable = (Disposable) get(); if (disposable != DisposableHelper.DISPOSED) { disposable.dispose(); lazySet(DisposableHelper.DISPOSED); this.a.a(this.b); } } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this, disposable); } } interface TimeoutSelectorSupport extends ObservableTimeoutTimed.TimeoutSupport { void a(long j, Throwable th); } public ObservableTimeout(Observable observable, ObservableSource observableSource, Function> function, ObservableSource observableSource2) { super(observable); this.b = observableSource; this.c = function; this.d = observableSource2; } @Override // io.reactivex.Observable protected void subscribeActual(Observer observer) { ObservableSource observableSource = this.d; if (observableSource == null) { TimeoutObserver timeoutObserver = new TimeoutObserver(observer, this.c); observer.onSubscribe(timeoutObserver); timeoutObserver.a((ObservableSource) this.b); this.a.subscribe(timeoutObserver); return; } TimeoutFallbackObserver timeoutFallbackObserver = new TimeoutFallbackObserver(observer, this.c, observableSource); observer.onSubscribe(timeoutFallbackObserver); timeoutFallbackObserver.a((ObservableSource) this.b); this.a.subscribe(timeoutFallbackObserver); } static final class TimeoutFallbackObserver extends AtomicReference implements Observer, Disposable, TimeoutSelectorSupport { final Observer a; final Function> b; final SequentialDisposable c = new SequentialDisposable(); final AtomicLong d = new AtomicLong(); final AtomicReference e = new AtomicReference<>(); ObservableSource f; TimeoutFallbackObserver(Observer observer, Function> function, ObservableSource observableSource) { this.a = observer; this.b = function; this.f = observableSource; } void a(ObservableSource observableSource) { if (observableSource != null) { TimeoutConsumer timeoutConsumer = new TimeoutConsumer(0L, this); if (this.c.replace(timeoutConsumer)) { observableSource.subscribe(timeoutConsumer); } } } @Override // io.reactivex.disposables.Disposable public void dispose() { DisposableHelper.dispose(this.e); DisposableHelper.dispose(this); this.c.dispose(); } @Override // io.reactivex.Observer public void onComplete() { if (this.d.getAndSet(Long.MAX_VALUE) != Long.MAX_VALUE) { this.c.dispose(); this.a.onComplete(); this.c.dispose(); } } @Override // io.reactivex.Observer public void onError(Throwable th) { if (this.d.getAndSet(Long.MAX_VALUE) == Long.MAX_VALUE) { RxJavaPlugins.b(th); return; } this.c.dispose(); this.a.onError(th); this.c.dispose(); } @Override // io.reactivex.Observer public void onNext(T t) { long j = this.d.get(); if (j != Long.MAX_VALUE) { long j2 = 1 + j; if (this.d.compareAndSet(j, j2)) { Disposable disposable = this.c.get(); if (disposable != null) { disposable.dispose(); } this.a.onNext(t); try { ObservableSource apply = this.b.apply(t); ObjectHelper.a(apply, "The itemTimeoutIndicator returned a null ObservableSource."); ObservableSource observableSource = apply; TimeoutConsumer timeoutConsumer = new TimeoutConsumer(j2, this); if (this.c.replace(timeoutConsumer)) { observableSource.subscribe(timeoutConsumer); } } catch (Throwable th) { Exceptions.b(th); this.e.get().dispose(); this.d.getAndSet(Long.MAX_VALUE); this.a.onError(th); } } } } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this.e, disposable); } @Override // io.reactivex.internal.operators.observable.ObservableTimeoutTimed.TimeoutSupport public void a(long j) { if (this.d.compareAndSet(j, Long.MAX_VALUE)) { DisposableHelper.dispose(this.e); ObservableSource observableSource = this.f; this.f = null; observableSource.subscribe(new ObservableTimeoutTimed.FallbackObserver(this.a, this)); } } @Override // io.reactivex.internal.operators.observable.ObservableTimeout.TimeoutSelectorSupport public void a(long j, Throwable th) { if (this.d.compareAndSet(j, Long.MAX_VALUE)) { DisposableHelper.dispose(this); this.a.onError(th); } else { RxJavaPlugins.b(th); } } } static final class TimeoutObserver extends AtomicLong implements Observer, Disposable, TimeoutSelectorSupport { final Observer a; final Function> b; final SequentialDisposable c = new SequentialDisposable(); final AtomicReference d = new AtomicReference<>(); TimeoutObserver(Observer observer, Function> function) { this.a = observer; this.b = function; } void a(ObservableSource observableSource) { if (observableSource != null) { TimeoutConsumer timeoutConsumer = new TimeoutConsumer(0L, this); if (this.c.replace(timeoutConsumer)) { observableSource.subscribe(timeoutConsumer); } } } @Override // io.reactivex.disposables.Disposable public void dispose() { DisposableHelper.dispose(this.d); this.c.dispose(); } @Override // io.reactivex.Observer public void onComplete() { if (getAndSet(Long.MAX_VALUE) != Long.MAX_VALUE) { this.c.dispose(); this.a.onComplete(); } } @Override // io.reactivex.Observer public void onError(Throwable th) { if (getAndSet(Long.MAX_VALUE) == Long.MAX_VALUE) { RxJavaPlugins.b(th); } else { this.c.dispose(); this.a.onError(th); } } @Override // io.reactivex.Observer public void onNext(T t) { long j = get(); if (j != Long.MAX_VALUE) { long j2 = 1 + j; if (compareAndSet(j, j2)) { Disposable disposable = this.c.get(); if (disposable != null) { disposable.dispose(); } this.a.onNext(t); try { ObservableSource apply = this.b.apply(t); ObjectHelper.a(apply, "The itemTimeoutIndicator returned a null ObservableSource."); ObservableSource observableSource = apply; TimeoutConsumer timeoutConsumer = new TimeoutConsumer(j2, this); if (this.c.replace(timeoutConsumer)) { observableSource.subscribe(timeoutConsumer); } } catch (Throwable th) { Exceptions.b(th); this.d.get().dispose(); getAndSet(Long.MAX_VALUE); this.a.onError(th); } } } } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this.d, disposable); } @Override // io.reactivex.internal.operators.observable.ObservableTimeoutTimed.TimeoutSupport public void a(long j) { if (compareAndSet(j, Long.MAX_VALUE)) { DisposableHelper.dispose(this.d); this.a.onError(new TimeoutException()); } } @Override // io.reactivex.internal.operators.observable.ObservableTimeout.TimeoutSelectorSupport public void a(long j, Throwable th) { if (compareAndSet(j, Long.MAX_VALUE)) { DisposableHelper.dispose(this.d); this.a.onError(th); } else { RxJavaPlugins.b(th); } } } }