EngineJob.smali
.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 = {
"<R:",
"Ljava/lang/Object;",
">",
"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 <clinit>()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;-><init>()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 <init>(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;-><init>(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 <init>(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;-><init>()V
.line 29
new-instance v0, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;
invoke-direct {v0}, Lcom/bumptech/glide/load/engine/EngineJob$ResourceCallbacksAndExecutors;-><init>()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;-><init>()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;-><init>()V
throw v0
:try_end_30
.catchall {:try_start_2a .. :try_end_30} :catchall_30
:catchall_30
move-exception v0
monitor-exit p0
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;-><init>(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_37
.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;-><init>(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_37
.line 141
:cond_2c
iget-boolean p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->isCancelled:Z
if-nez p1, :cond_31
goto :goto_32
:cond_31
const/4 v1, 0x0
:goto_32
const-string p1, "Cannot add callbacks to a cancelled EngineJob"
invoke-static {v1, p1}, Lcom/bumptech/glide/util/Preconditions;->checkArgument(ZLjava/lang/String;)V
:try_end_37
.catchall {:try_start_1 .. :try_end_37} :catchall_39
.line 143
:goto_37
monitor-exit p0
return-void
:catchall_39
move-exception p1
monitor-exit p0
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;-><init>(Ljava/lang/Throwable;)V
throw v0
:try_end_f
.catchall {:try_start_9 .. :try_end_f} :catchall_f
:catchall_f
move-exception p1
monitor-exit p0
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;-><init>(Ljava/lang/Throwable;)V
throw v0
:try_end_11
.catchall {:try_start_b .. :try_end_11} :catchall_11
:catchall_11
move-exception p1
monitor-exit p0
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
:goto_1a
const-string v2, "Can\'t decrement below 0"
.line 270
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
monitor-exit p0
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
monitor-exit p0
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
monitor-exit p0
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
monitor-exit p0
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;-><init>(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;-><init>(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;-><init>(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;-><init>(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;-><init>(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;-><init>(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_2f
.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_21
iget-boolean p1, p0, Lcom/bumptech/glide/load/engine/EngineJob;->hasLoadFailed:Z
if-eqz p1, :cond_1f
goto :goto_21
:cond_1f
const/4 p1, 0x0
goto :goto_22
:cond_21
:goto_21
const/4 p1, 0x1
:goto_22
if-eqz p1, :cond_2f
.line 177
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_2f
.line 178
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/EngineJob;->release()V
:try_end_2f
.catchall {:try_start_1 .. :try_end_2f} :catchall_31
.line 181
:cond_2f
monitor-exit p0
return-void
:catchall_31
move-exception p1
monitor-exit p0
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
monitor-exit p0
throw p1
.end method