jimu-decompiled/sources/io/reactivex/internal/operators/observable/ObservableRetryBiPredicate.java
2025-05-13 19:24:51 +02:00

89 lines
3.1 KiB
Java

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.CompositeException;
import io.reactivex.exceptions.Exceptions;
import io.reactivex.functions.BiPredicate;
import io.reactivex.internal.disposables.SequentialDisposable;
import java.util.concurrent.atomic.AtomicInteger;
/* loaded from: classes2.dex */
public final class ObservableRetryBiPredicate<T> extends AbstractObservableWithUpstream<T, T> {
final BiPredicate<? super Integer, ? super Throwable> b;
static final class RetryBiObserver<T> extends AtomicInteger implements Observer<T> {
final Observer<? super T> a;
final SequentialDisposable b;
final ObservableSource<? extends T> c;
final BiPredicate<? super Integer, ? super Throwable> d;
int e;
RetryBiObserver(Observer<? super T> observer, BiPredicate<? super Integer, ? super Throwable> biPredicate, SequentialDisposable sequentialDisposable, ObservableSource<? extends T> observableSource) {
this.a = observer;
this.b = sequentialDisposable;
this.c = observableSource;
this.d = biPredicate;
}
void a() {
if (getAndIncrement() == 0) {
int i = 1;
while (!this.b.isDisposed()) {
this.c.subscribe(this);
i = addAndGet(-i);
if (i == 0) {
return;
}
}
}
}
@Override // io.reactivex.Observer
public void onComplete() {
this.a.onComplete();
}
@Override // io.reactivex.Observer
public void onError(Throwable th) {
try {
BiPredicate<? super Integer, ? super Throwable> biPredicate = this.d;
int i = this.e + 1;
this.e = i;
if (biPredicate.a(Integer.valueOf(i), th)) {
a();
} else {
this.a.onError(th);
}
} catch (Throwable th2) {
Exceptions.b(th2);
this.a.onError(new CompositeException(th, th2));
}
}
@Override // io.reactivex.Observer
public void onNext(T t) {
this.a.onNext(t);
}
@Override // io.reactivex.Observer
public void onSubscribe(Disposable disposable) {
this.b.update(disposable);
}
}
public ObservableRetryBiPredicate(Observable<T> observable, BiPredicate<? super Integer, ? super Throwable> biPredicate) {
super(observable);
this.b = biPredicate;
}
@Override // io.reactivex.Observable
public void subscribeActual(Observer<? super T> observer) {
SequentialDisposable sequentialDisposable = new SequentialDisposable();
observer.onSubscribe(sequentialDisposable);
new RetryBiObserver(observer, this.b, sequentialDisposable, this.a).a();
}
}