97 lines
2.7 KiB
Java
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();
|
|
}
|
|
}
|