CompletableOnSubscribeMergeIterable.smali
.class public final Lrx/internal/operators/CompletableOnSubscribeMergeIterable;
.super Ljava/lang/Object;
.source "CompletableOnSubscribeMergeIterable.java"
# interfaces
.implements Lrx/Completable$OnSubscribe;
# instance fields
.field final sources:Ljava/lang/Iterable;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Iterable<",
"+",
"Lrx/Completable;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Ljava/lang/Iterable;)V
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Iterable<",
"+",
"Lrx/Completable;",
">;)V"
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lrx/internal/operators/CompletableOnSubscribeMergeIterable;->sources:Ljava/lang/Iterable;
return-void
.end method
# virtual methods
.method public bridge synthetic call(Ljava/lang/Object;)V
.registers 2
.line 1
check-cast p1, Lrx/CompletableSubscriber;
invoke-virtual {p0, p1}, Lrx/internal/operators/CompletableOnSubscribeMergeIterable;->call(Lrx/CompletableSubscriber;)V
return-void
.end method
.method public call(Lrx/CompletableSubscriber;)V
.registers 15
.line 2
new-instance v6, Lrx/subscriptions/CompositeSubscription;
invoke-direct {v6}, Lrx/subscriptions/CompositeSubscription;-><init>()V
.line 3
invoke-interface {p1, v6}, Lrx/CompletableSubscriber;->onSubscribe(Lrx/Subscription;)V
.line 4
:try_start_8
iget-object v0, p0, Lrx/internal/operators/CompletableOnSubscribeMergeIterable;->sources:Ljava/lang/Iterable;
invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object v7
:try_end_e
.catch Ljava/lang/Throwable; {:try_start_8 .. :try_end_e} :catch_a9
if-nez v7, :cond_1b
.line 5
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "The source iterator returned is null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
invoke-interface {p1, v0}, Lrx/CompletableSubscriber;->onError(Ljava/lang/Throwable;)V
return-void
.line 6
:cond_1b
new-instance v8, Ljava/util/concurrent/atomic/AtomicInteger;
const/4 v9, 0x1
invoke-direct {v8, v9}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>(I)V
.line 7
new-instance v10, Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-direct {v10}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V
.line 8
:goto_26
invoke-virtual {v6}, Lrx/subscriptions/CompositeSubscription;->isUnsubscribed()Z
move-result v0
if-eqz v0, :cond_2d
return-void
:cond_2d
const/4 v0, 0x0
.line 9
:try_start_2e
invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
move-result v1
:try_end_32
.catch Ljava/lang/Throwable; {:try_start_2e .. :try_end_32} :catch_97
if-nez v1, :cond_44
.line 10
invoke-virtual {v8}, Ljava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I
move-result v1
if-nez v1, :cond_43
.line 11
invoke-virtual {v10, v0, v9}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_43
.line 12
invoke-interface {p1}, Lrx/CompletableSubscriber;->onCompleted()V
:cond_43
return-void
.line 13
:cond_44
invoke-virtual {v6}, Lrx/subscriptions/CompositeSubscription;->isUnsubscribed()Z
move-result v1
if-eqz v1, :cond_4b
return-void
.line 14
:cond_4b
:try_start_4b
invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
move-object v11, v1
check-cast v11, Lrx/Completable;
:try_end_52
.catch Ljava/lang/Throwable; {:try_start_4b .. :try_end_52} :catch_85
.line 15
invoke-virtual {v6}, Lrx/subscriptions/CompositeSubscription;->isUnsubscribed()Z
move-result v1
if-eqz v1, :cond_59
return-void
:cond_59
if-nez v11, :cond_73
.line 16
invoke-virtual {v6}, Lrx/subscriptions/CompositeSubscription;->unsubscribe()V
.line 17
new-instance v1, Ljava/lang/NullPointerException;
const-string v2, "A completable source is null"
invoke-direct {v1, v2}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
.line 18
invoke-virtual {v10, v0, v9}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_6f
.line 19
invoke-interface {p1, v1}, Lrx/CompletableSubscriber;->onError(Ljava/lang/Throwable;)V
goto :goto_72
.line 20
:cond_6f
invoke-static {v1}, Lrx/plugins/RxJavaHooks;->onError(Ljava/lang/Throwable;)V
:goto_72
return-void
.line 21
:cond_73
invoke-virtual {v8}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
.line 22
new-instance v12, Lrx/internal/operators/CompletableOnSubscribeMergeIterable$1;
move-object v0, v12
move-object v1, p0
move-object v2, v6
move-object v3, v10
move-object v4, p1
move-object v5, v8
invoke-direct/range {v0 .. v5}, Lrx/internal/operators/CompletableOnSubscribeMergeIterable$1;-><init>(Lrx/internal/operators/CompletableOnSubscribeMergeIterable;Lrx/subscriptions/CompositeSubscription;Ljava/util/concurrent/atomic/AtomicBoolean;Lrx/CompletableSubscriber;Ljava/util/concurrent/atomic/AtomicInteger;)V
invoke-virtual {v11, v12}, Lrx/Completable;->unsafeSubscribe(Lrx/CompletableSubscriber;)V
goto :goto_26
:catch_85
move-exception v1
.line 23
invoke-virtual {v6}, Lrx/subscriptions/CompositeSubscription;->unsubscribe()V
.line 24
invoke-virtual {v10, v0, v9}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_93
.line 25
invoke-interface {p1, v1}, Lrx/CompletableSubscriber;->onError(Ljava/lang/Throwable;)V
goto :goto_96
.line 26
:cond_93
invoke-static {v1}, Lrx/plugins/RxJavaHooks;->onError(Ljava/lang/Throwable;)V
:goto_96
return-void
:catch_97
move-exception v1
.line 27
invoke-virtual {v6}, Lrx/subscriptions/CompositeSubscription;->unsubscribe()V
.line 28
invoke-virtual {v10, v0, v9}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z
move-result v0
if-eqz v0, :cond_a5
.line 29
invoke-interface {p1, v1}, Lrx/CompletableSubscriber;->onError(Ljava/lang/Throwable;)V
goto :goto_a8
.line 30
:cond_a5
invoke-static {v1}, Lrx/plugins/RxJavaHooks;->onError(Ljava/lang/Throwable;)V
:goto_a8
return-void
:catch_a9
move-exception v0
.line 31
invoke-interface {p1, v0}, Lrx/CompletableSubscriber;->onError(Ljava/lang/Throwable;)V
return-void
.end method