.class Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher; .super Ljava/lang/Object; .source "MultiModelLoader.java" # interfaces .implements Lcom/bumptech/glide/load/data/DataFetcher; .implements Lcom/bumptech/glide/load/data/DataFetcher$DataCallback; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/bumptech/glide/load/model/MultiModelLoader; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x8 name = "MultiFetcher" .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;", "Lcom/bumptech/glide/load/data/DataFetcher<", "TData;>;", "Lcom/bumptech/glide/load/data/DataFetcher$DataCallback<", "TData;>;" } .end annotation # instance fields .field private callback:Lcom/bumptech/glide/load/data/DataFetcher$DataCallback; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/load/data/DataFetcher$DataCallback<", "-TData;>;" } .end annotation .end field .field private currentIndex:I .field private exceptions:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Ljava/lang/Throwable;", ">;" } .end annotation .end field .field private final fetchers:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Lcom/bumptech/glide/load/data/DataFetcher<", "TData;>;>;" } .end annotation .end field .field private isCancelled:Z .field private priority:Lcom/bumptech/glide/Priority; .field private final throwableListPool:Landroidx/core/util/Pools$Pool; .annotation system Ldalvik/annotation/Signature; value = { "Landroidx/core/util/Pools$Pool<", "Ljava/util/List<", "Ljava/lang/Throwable;", ">;>;" } .end annotation .end field # direct methods .method constructor (Ljava/util/List;Landroidx/core/util/Pools$Pool;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/List<", "Lcom/bumptech/glide/load/data/DataFetcher<", "TData;>;>;", "Landroidx/core/util/Pools$Pool<", "Ljava/util/List<", "Ljava/lang/Throwable;", ">;>;)V" } .end annotation .line 87 invoke-direct {p0}, Ljava/lang/Object;->()V .line 88 iput-object p2, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->throwableListPool:Landroidx/core/util/Pools$Pool; .line 89 invoke-static {p1}, Lcom/bumptech/glide/util/Preconditions;->checkNotEmpty(Ljava/util/Collection;)Ljava/util/Collection; .line 90 iput-object p1, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->fetchers:Ljava/util/List; const/4 p1, 0x0 .line 91 iput p1, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->currentIndex:I return-void .end method .method private startNextOrFail()V .registers 5 .line 158 iget-boolean v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->isCancelled:Z if-eqz v0, :cond_5 return-void .line 162 :cond_5 iget v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->currentIndex:I iget-object v1, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->fetchers:Ljava/util/List; invoke-interface {v1}, Ljava/util/List;->size()I move-result v1 add-int/lit8 v1, v1, -0x1 if-ge v0, v1, :cond_1f .line 163 iget v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->currentIndex:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->currentIndex:I .line 164 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->priority:Lcom/bumptech/glide/Priority; iget-object v1, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->callback:Lcom/bumptech/glide/load/data/DataFetcher$DataCallback; invoke-virtual {p0, v0, v1}, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->loadData(Lcom/bumptech/glide/Priority;Lcom/bumptech/glide/load/data/DataFetcher$DataCallback;)V goto :goto_37 .line 166 :cond_1f iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->exceptions:Ljava/util/List; invoke-static {v0}, Lcom/bumptech/glide/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; .line 167 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->callback:Lcom/bumptech/glide/load/data/DataFetcher$DataCallback; new-instance v1, Lcom/bumptech/glide/load/engine/GlideException; new-instance v2, Ljava/util/ArrayList; iget-object v3, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->exceptions:Ljava/util/List; invoke-direct {v2, v3}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V const-string v3, "Fetch failed" invoke-direct {v1, v3, v2}, Lcom/bumptech/glide/load/engine/GlideException;->(Ljava/lang/String;Ljava/util/List;)V invoke-interface {v0, v1}, Lcom/bumptech/glide/load/data/DataFetcher$DataCallback;->onLoadFailed(Ljava/lang/Exception;)V :goto_37 return-void .end method # virtual methods .method public cancel()V .registers 3 const/4 v0, 0x1 .line 124 iput-boolean v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->isCancelled:Z .line 125 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->fetchers:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_9 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_19 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/bumptech/glide/load/data/DataFetcher; .line 126 invoke-interface {v1}, Lcom/bumptech/glide/load/data/DataFetcher;->cancel()V goto :goto_9 :cond_19 return-void .end method .method public cleanup()V .registers 3 .line 113 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->exceptions:Ljava/util/List; if-eqz v0, :cond_9 .line 114 iget-object v1, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->throwableListPool:Landroidx/core/util/Pools$Pool; invoke-interface {v1, v0}, Landroidx/core/util/Pools$Pool;->release(Ljava/lang/Object;)Z :cond_9 const/4 v0, 0x0 .line 116 iput-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->exceptions:Ljava/util/List; .line 117 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->fetchers:Ljava/util/List; invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_12 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_22 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/bumptech/glide/load/data/DataFetcher; .line 118 invoke-interface {v1}, Lcom/bumptech/glide/load/data/DataFetcher;->cleanup()V goto :goto_12 :cond_22 return-void .end method .method public getDataClass()Ljava/lang/Class; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/lang/Class<", "TData;>;" } .end annotation .line 133 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->fetchers:Ljava/util/List; const/4 v1, 0x0 invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/load/data/DataFetcher; invoke-interface {v0}, Lcom/bumptech/glide/load/data/DataFetcher;->getDataClass()Ljava/lang/Class; move-result-object v0 return-object v0 .end method .method public getDataSource()Lcom/bumptech/glide/load/DataSource; .registers 3 .line 139 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->fetchers:Ljava/util/List; const/4 v1, 0x0 invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/load/data/DataFetcher; invoke-interface {v0}, Lcom/bumptech/glide/load/data/DataFetcher;->getDataSource()Lcom/bumptech/glide/load/DataSource; move-result-object v0 return-object v0 .end method .method public loadData(Lcom/bumptech/glide/Priority;Lcom/bumptech/glide/load/data/DataFetcher$DataCallback;)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/Priority;", "Lcom/bumptech/glide/load/data/DataFetcher$DataCallback<", "-TData;>;)V" } .end annotation .line 97 iput-object p1, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->priority:Lcom/bumptech/glide/Priority; .line 98 iput-object p2, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->callback:Lcom/bumptech/glide/load/data/DataFetcher$DataCallback; .line 99 iget-object p2, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->throwableListPool:Landroidx/core/util/Pools$Pool; invoke-interface {p2}, Landroidx/core/util/Pools$Pool;->acquire()Ljava/lang/Object; move-result-object p2 check-cast p2, Ljava/util/List; iput-object p2, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->exceptions:Ljava/util/List; .line 100 iget-object p2, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->fetchers:Ljava/util/List; iget v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->currentIndex:I invoke-interface {p2, v0}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p2 check-cast p2, Lcom/bumptech/glide/load/data/DataFetcher; invoke-interface {p2, p1, p0}, Lcom/bumptech/glide/load/data/DataFetcher;->loadData(Lcom/bumptech/glide/Priority;Lcom/bumptech/glide/load/data/DataFetcher$DataCallback;)V .line 106 iget-boolean p1, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->isCancelled:Z if-eqz p1, :cond_22 .line 107 invoke-virtual {p0}, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->cancel()V :cond_22 return-void .end method .method public onDataReady(Ljava/lang/Object;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(TData;)V" } .end annotation if-eqz p1, :cond_8 .line 145 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->callback:Lcom/bumptech/glide/load/data/DataFetcher$DataCallback; invoke-interface {v0, p1}, Lcom/bumptech/glide/load/data/DataFetcher$DataCallback;->onDataReady(Ljava/lang/Object;)V goto :goto_b .line 147 :cond_8 invoke-direct {p0}, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->startNextOrFail()V :goto_b return-void .end method .method public onLoadFailed(Ljava/lang/Exception;)V .registers 3 .line 153 iget-object v0, p0, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->exceptions:Ljava/util/List; invoke-static {v0}, Lcom/bumptech/glide/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/List; invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z .line 154 invoke-direct {p0}, Lcom/bumptech/glide/load/model/MultiModelLoader$MultiFetcher;->startNextOrFail()V return-void .end method