.class Lcom/bumptech/glide/load/engine/EngineJob; .super Ljava/lang/Object; .source "EngineJob.java" # interfaces .implements Lcom/bumptech/glide/load/engine/DecodeJob$Callback; .implements Lcom/bumptech/glide/util/pool/FactoryPools$Poolable; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory;, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbackAndExecutor;, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;, Lcom/bumptech/glide/load/engine/EngineJob$CallResourceReady;, Lcom/bumptech/glide/load/engine/EngineJob$CallLoadFailed; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;", "Lcom/bumptech/glide/load/engine/DecodeJob$Callback<", "TR;>;", "Lcom/bumptech/glide/util/pool/FactoryPools$Poolable;" } .end annotation # static fields .field private static final DEFAULT_FACTORY:Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory; # instance fields .field private final animationExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .field final cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; .field dataSource:Lcom/bumptech/glide/load/DataSource; .field private decodeJob:Lcom/bumptech/glide/load/engine/DecodeJob; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/load/engine/DecodeJob<", "TR;>;" } .end annotation .end field .field private final diskCacheExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .field engineResource:Lcom/bumptech/glide/load/engine/EngineResource; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/load/engine/EngineResource<", "*>;" } .end annotation .end field .field private final engineResourceFactory:Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory; .field exception:Lcom/bumptech/glide/load/engine/GlideException; .field private hasLoadFailed:Z .field private hasResource:Z .field private isCacheable:Z .field private volatile isCancelled:Z .field private key:Lcom/bumptech/glide/load/Key; .field private final listener:Lcom/bumptech/glide/load/engine/EngineJobListener; .field private onlyRetrieveFromCache:Z .field private final pendingCallbacks:Ljava/util/concurrent/atomic/AtomicInteger; .field private final pool:Landroidx/core/util/Pools$Pool; .annotation system Ldalvik/annotation/Signature; value = { "Landroidx/core/util/Pools$Pool<", "Lcom/bumptech/glide/load/engine/EngineJob<", "*>;>;" } .end annotation .end field .field private resource:Lcom/bumptech/glide/load/engine/Resource; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/load/engine/Resource<", "*>;" } .end annotation .end field .field private final sourceExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .field private final sourceUnlimitedExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .field private final stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; .field private useAnimationPool:Z .field private useUnlimitedSourceGeneratorPool:Z # direct methods .method static constructor ()V .registers 1 .line 27 new-instance v0, Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory; invoke-direct {v0}, Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory;->()V sput-object v0, Lcom/bumptech/glide/load/engine/EngineJob;->DEFAULT_FACTORY:Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory; return-void .end method .method constructor (Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/EngineJobListener;Landroidx/core/util/Pools$Pool;)V .registers 15 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/EngineJobListener;", "Landroidx/core/util/Pools$Pool<", "Lcom/bumptech/glide/load/engine/EngineJob<", "*>;>;)V" } .end annotation .line 78 sget-object v7, Lcom/bumptech/glide/load/engine/EngineJob;->DEFAULT_FACTORY:Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory; move-object v0, p0 move-object v1, p1 move-object v2, p2 move-object v3, p3 move-object v4, p4 move-object v5, p5 move-object v6, p6 invoke-direct/range {v0 .. v7}, Lcom/bumptech/glide/load/engine/EngineJob;->(Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/EngineJobListener;Landroidx/core/util/Pools$Pool;Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory;)V return-void .end method .method constructor (Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/executor/GlideExecutor;Lcom/bumptech/glide/load/engine/EngineJobListener;Landroidx/core/util/Pools$Pool;Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory;)V .registers 9 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/executor/GlideExecutor;", "Lcom/bumptech/glide/load/engine/EngineJobListener;", "Landroidx/core/util/Pools$Pool<", "Lcom/bumptech/glide/load/engine/EngineJob<", "*>;>;", "Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory;", ")V" } .end annotation .line 96 invoke-direct {p0}, Ljava/lang/Object;->()V .line 29 new-instance v0, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-direct {v0}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->()V iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; .line 33 invoke-static {}, Lcom/bumptech/glide/util/pool/StateVerifier;->newInstance()Lcom/bumptech/glide/util/pool/StateVerifier; move-result-object v0 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; .line 41 new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger; invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->()V iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->pendingCallbacks:Ljava/util/concurrent/atomic/AtomicInteger; .line 97 iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->diskCacheExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .line 98 iput-object p2, p0, Lcom/bumptech/glide/load/engine/EngineJob;->sourceExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .line 99 iput-object p3, p0, Lcom/bumptech/glide/load/engine/EngineJob;->sourceUnlimitedExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .line 100 iput-object p4, p0, Lcom/bumptech/glide/load/engine/EngineJob;->animationExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .line 101 iput-object p5, p0, Lcom/bumptech/glide/load/engine/EngineJob;->listener:Lcom/bumptech/glide/load/engine/EngineJobListener; .line 102 iput-object p6, p0, Lcom/bumptech/glide/load/engine/EngineJob;->pool:Landroidx/core/util/Pools$Pool; .line 103 iput-object p7, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResourceFactory:Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory; return-void .end method .method private getActiveSourceExecutor()Lcom/bumptech/glide/load/engine/executor/GlideExecutor; .registers 2 .line 188 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->useUnlimitedSourceGeneratorPool:Z if-eqz v0, :cond_7 .line 189 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->sourceUnlimitedExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; goto :goto_10 :cond_7 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->useAnimationPool:Z if-eqz v0, :cond_e iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->animationExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; goto :goto_10 :cond_e iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->sourceExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; :goto_10 return-object v0 .end method .method private isDone()Z .registers 2 .line 209 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasLoadFailed:Z if-nez v0, :cond_f iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasResource:Z if-nez v0, :cond_f iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z if-eqz v0, :cond_d goto :goto_f :cond_d const/4 v0, 0x0 goto :goto_10 :cond_f :goto_f const/4 v0, 0x1 :goto_10 return v0 .end method .method private declared-synchronized release()V .registers 4 monitor-enter p0 .line 281 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->key:Lcom/bumptech/glide/load/Key; if-eqz v0, :cond_2a .line 284 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {v0}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->clear()V const/4 v0, 0x0 .line 285 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->key:Lcom/bumptech/glide/load/Key; .line 286 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResource:Lcom/bumptech/glide/load/engine/EngineResource; .line 287 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->resource:Lcom/bumptech/glide/load/engine/Resource; const/4 v1, 0x0 .line 288 iput-boolean v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasLoadFailed:Z .line 289 iput-boolean v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z .line 290 iput-boolean v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasResource:Z .line 291 iget-object v2, p0, Lcom/bumptech/glide/load/engine/EngineJob;->decodeJob:Lcom/bumptech/glide/load/engine/DecodeJob; invoke-virtual {v2, v1}, Lcom/bumptech/glide/load/engine/DecodeJob;->release(Z)V .line 292 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->decodeJob:Lcom/bumptech/glide/load/engine/DecodeJob; .line 293 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->exception:Lcom/bumptech/glide/load/engine/GlideException; .line 294 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->dataSource:Lcom/bumptech/glide/load/DataSource; .line 295 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->pool:Landroidx/core/util/Pools$Pool; invoke-interface {v0, p0}, Landroidx/core/util/Pools$Pool;->release(Ljava/lang/Object;)Z :try_end_28 .catchall {:try_start_1 .. :try_end_28} :catchall_30 .line 296 monitor-exit p0 return-void .line 282 :cond_2a :try_start_2a new-instance v0, Ljava/lang/IllegalArgumentException; invoke-direct {v0}, Ljava/lang/IllegalArgumentException;->()V throw v0 :catchall_30 move-exception v0 monitor-exit p0 :try_end_32 .catchall {:try_start_2a .. :try_end_32} :catchall_30 throw v0 .end method # virtual methods .method declared-synchronized addCallback(Lcom/bumptech/glide/request/ResourceCallback;Ljava/util/concurrent/Executor;)V .registers 5 monitor-enter p0 .line 130 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; invoke-virtual {v0}, Lcom/bumptech/glide/util/pool/StateVerifier;->throwIfRecycled()V .line 131 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {v0, p1, p2}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->add(Lcom/bumptech/glide/request/ResourceCallback;Ljava/util/concurrent/Executor;)V .line 132 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasResource:Z const/4 v1, 0x1 if-eqz v0, :cond_1c .line 135 invoke-virtual {p0, v1}, Lcom/bumptech/glide/load/engine/EngineJob;->incrementPendingCallbacks(I)V .line 136 new-instance v0, Lcom/bumptech/glide/load/engine/EngineJob$CallResourceReady; invoke-direct {v0, p0, p1}, Lcom/bumptech/glide/load/engine/EngineJob$CallResourceReady;->(Lcom/bumptech/glide/load/engine/EngineJob;Lcom/bumptech/glide/request/ResourceCallback;)V invoke-interface {p2, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V goto :goto_34 .line 137 :cond_1c iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasLoadFailed:Z if-eqz v0, :cond_2c .line 138 invoke-virtual {p0, v1}, Lcom/bumptech/glide/load/engine/EngineJob;->incrementPendingCallbacks(I)V .line 139 new-instance v0, Lcom/bumptech/glide/load/engine/EngineJob$CallLoadFailed; invoke-direct {v0, p0, p1}, Lcom/bumptech/glide/load/engine/EngineJob$CallLoadFailed;->(Lcom/bumptech/glide/load/engine/EngineJob;Lcom/bumptech/glide/request/ResourceCallback;)V invoke-interface {p2, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V goto :goto_34 .line 141 :cond_2c iget-boolean p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z xor-int/2addr p1, v1 const-string p2, "Cannot add callbacks to a cancelled EngineJob" invoke-static {p1, p2}, Lcom/bumptech/glide/util/Preconditions;->checkArgument(ZLjava/lang/String;)V :try_end_34 .catchall {:try_start_1 .. :try_end_34} :catchall_36 .line 143 :goto_34 monitor-exit p0 return-void :catchall_36 move-exception p1 :try_start_37 monitor-exit p0 :try_end_38 .catchall {:try_start_37 .. :try_end_38} :catchall_36 throw p1 .end method .method declared-synchronized callCallbackOnLoadFailed(Lcom/bumptech/glide/request/ResourceCallback;)V .registers 3 monitor-enter p0 .line 165 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->exception:Lcom/bumptech/glide/load/engine/GlideException; invoke-interface {p1, v0}, Lcom/bumptech/glide/request/ResourceCallback;->onLoadFailed(Lcom/bumptech/glide/load/engine/GlideException;)V :try_end_6 .catchall {:try_start_1 .. :try_end_6} :catchall_8 .line 169 monitor-exit p0 return-void :catchall_8 move-exception p1 .line 167 :try_start_9 new-instance v0, Lcom/bumptech/glide/load/engine/CallbackException; invoke-direct {v0, p1}, Lcom/bumptech/glide/load/engine/CallbackException;->(Ljava/lang/Throwable;)V throw v0 :catchall_f move-exception p1 monitor-exit p0 :try_end_11 .catchall {:try_start_9 .. :try_end_11} :catchall_f throw p1 .end method .method declared-synchronized callCallbackOnResourceReady(Lcom/bumptech/glide/request/ResourceCallback;)V .registers 4 monitor-enter p0 .line 152 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResource:Lcom/bumptech/glide/load/engine/EngineResource; iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->dataSource:Lcom/bumptech/glide/load/DataSource; invoke-interface {p1, v0, v1}, Lcom/bumptech/glide/request/ResourceCallback;->onResourceReady(Lcom/bumptech/glide/load/engine/Resource;Lcom/bumptech/glide/load/DataSource;)V :try_end_8 .catchall {:try_start_1 .. :try_end_8} :catchall_a .line 156 monitor-exit p0 return-void :catchall_a move-exception p1 .line 154 :try_start_b new-instance v0, Lcom/bumptech/glide/load/engine/CallbackException; invoke-direct {v0, p1}, Lcom/bumptech/glide/load/engine/CallbackException;->(Ljava/lang/Throwable;)V throw v0 :catchall_11 move-exception p1 monitor-exit p0 :try_end_13 .catchall {:try_start_b .. :try_end_13} :catchall_11 throw p1 .end method .method cancel()V .registers 3 .line 194 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->isDone()Z move-result v0 if-eqz v0, :cond_7 return-void :cond_7 const/4 v0, 0x1 .line 198 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z .line 199 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->decodeJob:Lcom/bumptech/glide/load/engine/DecodeJob; invoke-virtual {v0}, Lcom/bumptech/glide/load/engine/DecodeJob;->cancel()V .line 200 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->listener:Lcom/bumptech/glide/load/engine/EngineJobListener; iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->key:Lcom/bumptech/glide/load/Key; invoke-interface {v0, p0, v1}, Lcom/bumptech/glide/load/engine/EngineJobListener;->onEngineJobCancelled(Lcom/bumptech/glide/load/engine/EngineJob;Lcom/bumptech/glide/load/Key;)V return-void .end method .method declared-synchronized decrementPendingCallbacks()V .registers 4 monitor-enter p0 .line 267 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; invoke-virtual {v0}, Lcom/bumptech/glide/util/pool/StateVerifier;->throwIfRecycled()V .line 268 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->isDone()Z move-result v0 const-string v1, "Not yet complete!" invoke-static {v0, v1}, Lcom/bumptech/glide/util/Preconditions;->checkArgument(ZLjava/lang/String;)V .line 269 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->pendingCallbacks:Ljava/util/concurrent/atomic/AtomicInteger; invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I move-result v0 if-ltz v0, :cond_19 const/4 v1, 0x1 goto :goto_1a :cond_19 const/4 v1, 0x0 .line 270 :goto_1a const-string v2, "Can\'t decrement below 0" invoke-static {v1, v2}, Lcom/bumptech/glide/util/Preconditions;->checkArgument(ZLjava/lang/String;)V if-nez v0, :cond_2b .line 272 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResource:Lcom/bumptech/glide/load/engine/EngineResource; if-eqz v0, :cond_28 .line 273 invoke-virtual {v0}, Lcom/bumptech/glide/load/engine/EngineResource;->release()V .line 276 :cond_28 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->release()V :try_end_2b .catchall {:try_start_1 .. :try_end_2b} :catchall_2d .line 278 :cond_2b monitor-exit p0 return-void :catchall_2d move-exception v0 :try_start_2e monitor-exit p0 :try_end_2f .catchall {:try_start_2e .. :try_end_2f} :catchall_2d throw v0 .end method .method public getVerifier()Lcom/bumptech/glide/util/pool/StateVerifier; .registers 2 .line 361 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; return-object v0 .end method .method declared-synchronized incrementPendingCallbacks(I)V .registers 4 monitor-enter p0 .line 258 :try_start_1 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->isDone()Z move-result v0 const-string v1, "Not yet complete!" invoke-static {v0, v1}, Lcom/bumptech/glide/util/Preconditions;->checkArgument(ZLjava/lang/String;)V .line 259 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->pendingCallbacks:Ljava/util/concurrent/atomic/AtomicInteger; invoke-virtual {v0, p1}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndAdd(I)I move-result p1 if-nez p1, :cond_19 iget-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResource:Lcom/bumptech/glide/load/engine/EngineResource; if-eqz p1, :cond_19 .line 260 invoke-virtual {p1}, Lcom/bumptech/glide/load/engine/EngineResource;->acquire()V :try_end_19 .catchall {:try_start_1 .. :try_end_19} :catchall_1b .line 262 :cond_19 monitor-exit p0 return-void :catchall_1b move-exception p1 :try_start_1c monitor-exit p0 :try_end_1d .catchall {:try_start_1c .. :try_end_1d} :catchall_1b throw p1 .end method .method declared-synchronized init(Lcom/bumptech/glide/load/Key;ZZZZ)Lcom/bumptech/glide/load/engine/EngineJob; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/Key;", "ZZZZ)", "Lcom/bumptech/glide/load/engine/EngineJob<", "TR;>;" } .end annotation monitor-enter p0 .line 113 :try_start_1 iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->key:Lcom/bumptech/glide/load/Key; .line 114 iput-boolean p2, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCacheable:Z .line 115 iput-boolean p3, p0, Lcom/bumptech/glide/load/engine/EngineJob;->useUnlimitedSourceGeneratorPool:Z .line 116 iput-boolean p4, p0, Lcom/bumptech/glide/load/engine/EngineJob;->useAnimationPool:Z .line 117 iput-boolean p5, p0, Lcom/bumptech/glide/load/engine/EngineJob;->onlyRetrieveFromCache:Z :try_end_b .catchall {:try_start_1 .. :try_end_b} :catchall_d .line 118 monitor-exit p0 return-object p0 :catchall_d move-exception p1 :try_start_e monitor-exit p0 :try_end_f .catchall {:try_start_e .. :try_end_f} :catchall_d throw p1 .end method .method declared-synchronized isCancelled()Z .registers 2 monitor-enter p0 .line 205 :try_start_1 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_5 monitor-exit p0 return v0 :catchall_5 move-exception v0 :try_start_6 monitor-exit p0 :try_end_7 .catchall {:try_start_6 .. :try_end_7} :catchall_5 throw v0 .end method .method notifyCallbacksOfException()V .registers 5 .line 330 monitor-enter p0 .line 331 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; invoke-virtual {v0}, Lcom/bumptech/glide/util/pool/StateVerifier;->throwIfRecycled()V .line 332 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z if-eqz v0, :cond_f .line 333 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->release()V .line 334 monitor-exit p0 return-void .line 335 :cond_f iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {v0}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->isEmpty()Z move-result v0 if-nez v0, :cond_5e .line 337 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasLoadFailed:Z if-nez v0, :cond_56 const/4 v0, 0x1 .line 340 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasLoadFailed:Z .line 342 iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->key:Lcom/bumptech/glide/load/Key; .line 344 iget-object v2, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {v2}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->copy()Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; move-result-object v2 .line 347 invoke-virtual {v2}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->size()I move-result v3 add-int/2addr v3, v0 invoke-virtual {p0, v3}, Lcom/bumptech/glide/load/engine/EngineJob;->incrementPendingCallbacks(I)V .line 348 monitor-exit p0 :try_end_2f .catchall {:try_start_1 .. :try_end_2f} :catchall_66 .line 350 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->listener:Lcom/bumptech/glide/load/engine/EngineJobListener; const/4 v3, 0x0 invoke-interface {v0, p0, v1, v3}, Lcom/bumptech/glide/load/engine/EngineJobListener;->onEngineJobComplete(Lcom/bumptech/glide/load/engine/EngineJob;Lcom/bumptech/glide/load/Key;Lcom/bumptech/glide/load/engine/EngineResource;)V .line 352 invoke-virtual {v2}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_39 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_52 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbackAndExecutor; .line 353 iget-object v2, v1, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbackAndExecutor;->executor:Ljava/util/concurrent/Executor; new-instance v3, Lcom/bumptech/glide/load/engine/EngineJob$CallLoadFailed; iget-object v1, v1, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbackAndExecutor;->cb:Lcom/bumptech/glide/request/ResourceCallback; invoke-direct {v3, p0, v1}, Lcom/bumptech/glide/load/engine/EngineJob$CallLoadFailed;->(Lcom/bumptech/glide/load/engine/EngineJob;Lcom/bumptech/glide/request/ResourceCallback;)V invoke-interface {v2, v3}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V goto :goto_39 .line 355 :cond_52 invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->decrementPendingCallbacks()V return-void .line 338 :cond_56 :try_start_56 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Already failed once" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .line 336 :cond_5e new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Received an exception without any callbacks to notify" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 :catchall_66 move-exception v0 .line 348 monitor-exit p0 :try_end_68 .catchall {:try_start_56 .. :try_end_68} :catchall_66 throw v0 .end method .method notifyCallbacksOfResult()V .registers 5 .line 221 monitor-enter p0 .line 222 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; invoke-virtual {v0}, Lcom/bumptech/glide/util/pool/StateVerifier;->throwIfRecycled()V .line 223 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z if-eqz v0, :cond_14 .line 226 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->resource:Lcom/bumptech/glide/load/engine/Resource; invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->recycle()V .line 227 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->release()V .line 228 monitor-exit p0 return-void .line 229 :cond_14 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {v0}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->isEmpty()Z move-result v0 if-nez v0, :cond_70 .line 231 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasResource:Z if-nez v0, :cond_68 .line 234 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResourceFactory:Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory; iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->resource:Lcom/bumptech/glide/load/engine/Resource; iget-boolean v2, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCacheable:Z invoke-virtual {v0, v1, v2}, Lcom/bumptech/glide/load/engine/EngineJob$EngineResourceFactory;->build(Lcom/bumptech/glide/load/engine/Resource;Z)Lcom/bumptech/glide/load/engine/EngineResource; move-result-object v0 iput-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResource:Lcom/bumptech/glide/load/engine/EngineResource; const/4 v0, 0x1 .line 239 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasResource:Z .line 240 iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {v1}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->copy()Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; move-result-object v1 .line 241 invoke-virtual {v1}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->size()I move-result v2 add-int/2addr v2, v0 invoke-virtual {p0, v2}, Lcom/bumptech/glide/load/engine/EngineJob;->incrementPendingCallbacks(I)V .line 243 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->key:Lcom/bumptech/glide/load/Key; .line 244 iget-object v2, p0, Lcom/bumptech/glide/load/engine/EngineJob;->engineResource:Lcom/bumptech/glide/load/engine/EngineResource; .line 245 monitor-exit p0 :try_end_42 .catchall {:try_start_1 .. :try_end_42} :catchall_78 .line 247 iget-object v3, p0, Lcom/bumptech/glide/load/engine/EngineJob;->listener:Lcom/bumptech/glide/load/engine/EngineJobListener; invoke-interface {v3, p0, v0, v2}, Lcom/bumptech/glide/load/engine/EngineJobListener;->onEngineJobComplete(Lcom/bumptech/glide/load/engine/EngineJob;Lcom/bumptech/glide/load/Key;Lcom/bumptech/glide/load/engine/EngineResource;)V .line 249 invoke-virtual {v1}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_4b invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_64 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbackAndExecutor; .line 250 iget-object v2, v1, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbackAndExecutor;->executor:Ljava/util/concurrent/Executor; new-instance v3, Lcom/bumptech/glide/load/engine/EngineJob$CallResourceReady; iget-object v1, v1, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbackAndExecutor;->cb:Lcom/bumptech/glide/request/ResourceCallback; invoke-direct {v3, p0, v1}, Lcom/bumptech/glide/load/engine/EngineJob$CallResourceReady;->(Lcom/bumptech/glide/load/engine/EngineJob;Lcom/bumptech/glide/request/ResourceCallback;)V invoke-interface {v2, v3}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V goto :goto_4b .line 252 :cond_64 invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->decrementPendingCallbacks()V return-void .line 232 :cond_68 :try_start_68 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Already have resource" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .line 230 :cond_70 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Received a resource without any callbacks to notify" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 :catchall_78 move-exception v0 .line 245 monitor-exit p0 :try_end_7a .catchall {:try_start_68 .. :try_end_7a} :catchall_78 throw v0 .end method .method public onLoadFailed(Lcom/bumptech/glide/load/engine/GlideException;)V .registers 2 .line 309 monitor-enter p0 .line 310 :try_start_1 iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->exception:Lcom/bumptech/glide/load/engine/GlideException; .line 311 monitor-exit p0 :try_end_4 .catchall {:try_start_1 .. :try_end_4} :catchall_8 .line 312 invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->notifyCallbacksOfException()V return-void :catchall_8 move-exception p1 .line 311 :try_start_9 monitor-exit p0 :try_end_a .catchall {:try_start_9 .. :try_end_a} :catchall_8 throw p1 .end method .method public onResourceReady(Lcom/bumptech/glide/load/engine/Resource;Lcom/bumptech/glide/load/DataSource;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/Resource<", "TR;>;", "Lcom/bumptech/glide/load/DataSource;", ")V" } .end annotation .line 300 monitor-enter p0 .line 301 :try_start_1 iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->resource:Lcom/bumptech/glide/load/engine/Resource; .line 302 iput-object p2, p0, Lcom/bumptech/glide/load/engine/EngineJob;->dataSource:Lcom/bumptech/glide/load/DataSource; .line 303 monitor-exit p0 :try_end_6 .catchall {:try_start_1 .. :try_end_6} :catchall_a .line 304 invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->notifyCallbacksOfResult()V return-void :catchall_a move-exception p1 .line 303 :try_start_b monitor-exit p0 :try_end_c .catchall {:try_start_b .. :try_end_c} :catchall_a throw p1 .end method .method onlyRetrieveFromCache()Z .registers 2 .line 184 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->onlyRetrieveFromCache:Z return v0 .end method .method declared-synchronized removeCallback(Lcom/bumptech/glide/request/ResourceCallback;)V .registers 3 monitor-enter p0 .line 172 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; invoke-virtual {v0}, Lcom/bumptech/glide/util/pool/StateVerifier;->throwIfRecycled()V .line 173 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->remove(Lcom/bumptech/glide/request/ResourceCallback;)V .line 174 iget-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->cbs:Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors; invoke-virtual {p1}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;->isEmpty()Z move-result p1 if-eqz p1, :cond_29 .line 175 invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->cancel()V .line 176 iget-boolean p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasResource:Z if-nez p1, :cond_1e iget-boolean p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasLoadFailed:Z if-eqz p1, :cond_29 .line 177 :cond_1e iget-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->pendingCallbacks:Ljava/util/concurrent/atomic/AtomicInteger; invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I move-result p1 if-nez p1, :cond_29 .line 178 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->release()V :try_end_29 .catchall {:try_start_1 .. :try_end_29} :catchall_2b .line 181 :cond_29 monitor-exit p0 return-void :catchall_2b move-exception p1 :try_start_2c monitor-exit p0 :try_end_2d .catchall {:try_start_2c .. :try_end_2d} :catchall_2b throw p1 .end method .method public reschedule(Lcom/bumptech/glide/load/engine/DecodeJob;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/DecodeJob<", "*>;)V" } .end annotation .line 319 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->getActiveSourceExecutor()Lcom/bumptech/glide/load/engine/executor/GlideExecutor; move-result-object v0 invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/engine/executor/GlideExecutor;->execute(Ljava/lang/Runnable;)V return-void .end method .method public declared-synchronized start(Lcom/bumptech/glide/load/engine/DecodeJob;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/DecodeJob<", "TR;>;)V" } .end annotation monitor-enter p0 .line 122 :try_start_1 iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->decodeJob:Lcom/bumptech/glide/load/engine/DecodeJob; .line 123 invoke-virtual {p1}, Lcom/bumptech/glide/load/engine/DecodeJob;->willDecodeFromCache()Z move-result v0 if-eqz v0, :cond_c .line 124 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineJob;->diskCacheExecutor:Lcom/bumptech/glide/load/engine/executor/GlideExecutor; goto :goto_10 .line 125 :cond_c invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->getActiveSourceExecutor()Lcom/bumptech/glide/load/engine/executor/GlideExecutor; move-result-object v0 .line 126 :goto_10 invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/engine/executor/GlideExecutor;->execute(Ljava/lang/Runnable;)V :try_end_13 .catchall {:try_start_1 .. :try_end_13} :catchall_15 .line 127 monitor-exit p0 return-void :catchall_15 move-exception p1 :try_start_16 monitor-exit p0 :try_end_17 .catchall {:try_start_16 .. :try_end_17} :catchall_15 throw p1 .end method