package io.reactivex.internal.operators.observable; import android.Manifest; import io.reactivex.MaybeObserver; import io.reactivex.MaybeSource; import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.Observer; import io.reactivex.disposables.CompositeDisposable; 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.functions.ObjectHelper; import io.reactivex.internal.queue.SpscLinkedArrayQueue; import io.reactivex.internal.util.AtomicThrowable; import io.reactivex.plugins.RxJavaPlugins; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes2.dex */ public final class ObservableFlatMapMaybe extends AbstractObservableWithUpstream { final Function> b; final boolean c; public ObservableFlatMapMaybe(ObservableSource observableSource, Function> function, boolean z) { super(observableSource); this.b = function; this.c = z; } @Override // io.reactivex.Observable protected void subscribeActual(Observer observer) { this.a.subscribe(new FlatMapMaybeObserver(observer, this.b, this.c)); } static final class FlatMapMaybeObserver extends AtomicInteger implements Observer, Disposable { final Observer a; final boolean b; final Function> f; Disposable h; volatile boolean i; final CompositeDisposable c = new CompositeDisposable(); final AtomicThrowable e = new AtomicThrowable(); final AtomicInteger d = new AtomicInteger(1); final AtomicReference> g = new AtomicReference<>(); final class InnerObserver extends AtomicReference implements MaybeObserver, Disposable { InnerObserver() { } @Override // io.reactivex.disposables.Disposable public void dispose() { DisposableHelper.dispose(this); } @Override // io.reactivex.MaybeObserver public void onComplete() { FlatMapMaybeObserver.this.a(this); } @Override // io.reactivex.MaybeObserver public void onError(Throwable th) { FlatMapMaybeObserver.this.a(this, th); } @Override // io.reactivex.MaybeObserver public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this, disposable); } @Override // io.reactivex.MaybeObserver public void onSuccess(R r) { FlatMapMaybeObserver.this.a((FlatMapMaybeObserver.InnerObserver) this, (InnerObserver) r); } } FlatMapMaybeObserver(Observer observer, Function> function, boolean z) { this.a = observer; this.f = function; this.b = z; } void a(FlatMapMaybeObserver.InnerObserver innerObserver, R r) { this.c.c(innerObserver); if (get() == 0) { if (compareAndSet(0, 1)) { this.a.onNext(r); boolean z = this.d.decrementAndGet() == 0; SpscLinkedArrayQueue spscLinkedArrayQueue = this.g.get(); if (!z || (spscLinkedArrayQueue != null && !spscLinkedArrayQueue.isEmpty())) { if (decrementAndGet() == 0) { return; } c(); } else { Throwable terminate = this.e.terminate(); if (terminate != null) { this.a.onError(terminate); return; } else { this.a.onComplete(); return; } } } } SpscLinkedArrayQueue d = d(); synchronized (d) { d.offer(r); } this.d.decrementAndGet(); if (getAndIncrement() != 0) { return; } c(); } void b() { if (getAndIncrement() == 0) { c(); } } void c() { Observer observer = this.a; AtomicInteger atomicInteger = this.d; AtomicReference> atomicReference = this.g; int i = 1; while (!this.i) { if (!this.b && this.e.get() != null) { Throwable terminate = this.e.terminate(); a(); observer.onError(terminate); return; } boolean z = atomicInteger.get() == 0; SpscLinkedArrayQueue spscLinkedArrayQueue = atomicReference.get(); Manifest poll = spscLinkedArrayQueue != null ? spscLinkedArrayQueue.poll() : null; boolean z2 = poll == null; if (z && z2) { Throwable terminate2 = this.e.terminate(); if (terminate2 != null) { observer.onError(terminate2); return; } else { observer.onComplete(); return; } } if (z2) { i = addAndGet(-i); if (i == 0) { return; } } else { observer.onNext(poll); } } a(); } SpscLinkedArrayQueue d() { SpscLinkedArrayQueue spscLinkedArrayQueue; do { SpscLinkedArrayQueue spscLinkedArrayQueue2 = this.g.get(); if (spscLinkedArrayQueue2 != null) { return spscLinkedArrayQueue2; } spscLinkedArrayQueue = new SpscLinkedArrayQueue<>(Observable.bufferSize()); } while (!this.g.compareAndSet(null, spscLinkedArrayQueue)); return spscLinkedArrayQueue; } @Override // io.reactivex.disposables.Disposable public void dispose() { this.i = true; this.h.dispose(); this.c.dispose(); } @Override // io.reactivex.Observer public void onComplete() { this.d.decrementAndGet(); b(); } @Override // io.reactivex.Observer public void onError(Throwable th) { this.d.decrementAndGet(); if (!this.e.addThrowable(th)) { RxJavaPlugins.b(th); return; } if (!this.b) { this.c.dispose(); } b(); } @Override // io.reactivex.Observer public void onNext(T t) { try { MaybeSource apply = this.f.apply(t); ObjectHelper.a(apply, "The mapper returned a null MaybeSource"); MaybeSource maybeSource = apply; this.d.getAndIncrement(); InnerObserver innerObserver = new InnerObserver(); if (this.i || !this.c.b(innerObserver)) { return; } maybeSource.a(innerObserver); } catch (Throwable th) { Exceptions.b(th); this.h.dispose(); onError(th); } } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { if (DisposableHelper.validate(this.h, disposable)) { this.h = disposable; this.a.onSubscribe(this); } } void a(FlatMapMaybeObserver.InnerObserver innerObserver, Throwable th) { this.c.c(innerObserver); if (this.e.addThrowable(th)) { if (!this.b) { this.h.dispose(); this.c.dispose(); } this.d.decrementAndGet(); b(); return; } RxJavaPlugins.b(th); } void a(FlatMapMaybeObserver.InnerObserver innerObserver) { this.c.c(innerObserver); if (get() == 0) { if (compareAndSet(0, 1)) { boolean z = this.d.decrementAndGet() == 0; SpscLinkedArrayQueue spscLinkedArrayQueue = this.g.get(); if (z && (spscLinkedArrayQueue == null || spscLinkedArrayQueue.isEmpty())) { Throwable terminate = this.e.terminate(); if (terminate != null) { this.a.onError(terminate); return; } else { this.a.onComplete(); return; } } if (decrementAndGet() == 0) { return; } c(); return; } } this.d.decrementAndGet(); b(); } void a() { SpscLinkedArrayQueue spscLinkedArrayQueue = this.g.get(); if (spscLinkedArrayQueue != null) { spscLinkedArrayQueue.clear(); } } } }