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

97 lines
2.7 KiB
Java

package io.reactivex.internal.operators.observable;
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.internal.functions.ObjectHelper;
import io.reactivex.internal.observers.BasicQueueDisposable;
/* loaded from: classes2.dex */
public final class ObservableFromArray<T> extends Observable<T> {
final T[] a;
static final class FromArrayDisposable<T> extends BasicQueueDisposable<T> {
final Observer<? super T> a;
final T[] b;
int c;
boolean d;
volatile boolean e;
FromArrayDisposable(Observer<? super T> observer, T[] tArr) {
this.a = observer;
this.b = tArr;
}
public boolean a() {
return this.e;
}
void b() {
T[] tArr = this.b;
int length = tArr.length;
for (int i = 0; i < length && !a(); i++) {
T t = tArr[i];
if (t == null) {
this.a.onError(new NullPointerException("The " + i + "th element is null"));
return;
}
this.a.onNext(t);
}
if (a()) {
return;
}
this.a.onComplete();
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public void clear() {
this.c = this.b.length;
}
@Override // io.reactivex.disposables.Disposable
public void dispose() {
this.e = true;
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public boolean isEmpty() {
return this.c == this.b.length;
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public T poll() {
int i = this.c;
T[] tArr = this.b;
if (i == tArr.length) {
return null;
}
this.c = i + 1;
T t = tArr[i];
ObjectHelper.a((Object) t, "The array element is null");
return t;
}
@Override // io.reactivex.internal.fuseable.QueueFuseable
public int requestFusion(int i) {
if ((i & 1) == 0) {
return 0;
}
this.d = true;
return 1;
}
}
public ObservableFromArray(T[] tArr) {
this.a = tArr;
}
@Override // io.reactivex.Observable
public void subscribeActual(Observer<? super T> observer) {
FromArrayDisposable fromArrayDisposable = new FromArrayDisposable(observer, this.a);
observer.onSubscribe(fromArrayDisposable);
if (fromArrayDisposable.d) {
return;
}
fromArrayDisposable.b();
}
}