EngineResource.smali
.class Lcom/bumptech/glide/load/engine/EngineResource;
.super Ljava/lang/Object;
.source "EngineResource.java"
# interfaces
.implements Lcom/bumptech/glide/load/engine/Resource;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<Z:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Lcom/bumptech/glide/load/engine/Resource<",
"TZ;>;"
}
.end annotation
# instance fields
.field private acquired:I
.field private final isCacheable:Z
.field private isRecycled:Z
.field private key:Lcom/bumptech/glide/load/Key;
.field private listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;
.field private final resource:Lcom/bumptech/glide/load/engine/Resource;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/bumptech/glide/load/engine/Resource<",
"TZ;>;"
}
.end annotation
.end field
# direct methods
.method constructor <init>(Lcom/bumptech/glide/load/engine/Resource;Z)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/bumptech/glide/load/engine/Resource<",
"TZ;>;Z)V"
}
.end annotation
.line 25
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 26
invoke-static {p1}, Lcom/bumptech/glide/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/bumptech/glide/load/engine/Resource;
iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource;
.line 27
iput-boolean p2, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isCacheable:Z
return-void
.end method
# virtual methods
.method acquire()V
.registers 3
.line 76
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z
if-nez v0, :cond_21
.line 79
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v0
invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_19
.line 82
iget v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I
return-void
.line 80
:cond_19
new-instance v0, Ljava/lang/IllegalThreadStateException;
const-string v1, "Must call acquire on the main thread"
invoke-direct {v0, v1}, Ljava/lang/IllegalThreadStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 77
:cond_21
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Cannot acquire a recycled resource"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public get()Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()TZ;"
}
.end annotation
.line 46
iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource;
invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->get()Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public getResourceClass()Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class<",
"TZ;>;"
}
.end annotation
.line 41
iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource;
invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->getResourceClass()Ljava/lang/Class;
move-result-object v0
return-object v0
.end method
.method public getSize()I
.registers 2
.line 51
iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource;
invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->getSize()I
move-result v0
return v0
.end method
.method isCacheable()Z
.registers 2
.line 36
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isCacheable:Z
return v0
.end method
.method public recycle()V
.registers 3
.line 56
iget v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I
if-gtz v0, :cond_19
.line 59
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z
if-nez v0, :cond_11
const/4 v0, 0x1
.line 62
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z
.line 63
iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource;
invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->recycle()V
return-void
.line 60
:cond_11
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Cannot recycle a resource that has already been recycled"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 57
:cond_19
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Cannot recycle a resource while it is still acquired"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method release()V
.registers 3
.line 94
iget v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I
if-lez v0, :cond_2a
.line 97
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v0
invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_22
.line 100
iget v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I
if-nez v0, :cond_21
.line 101
iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;
iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->key:Lcom/bumptech/glide/load/Key;
invoke-interface {v0, v1, p0}, Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;->onResourceReleased(Lcom/bumptech/glide/load/Key;Lcom/bumptech/glide/load/engine/EngineResource;)V
:cond_21
return-void
.line 98
:cond_22
new-instance v0, Ljava/lang/IllegalThreadStateException;
const-string v1, "Must call release on the main thread"
invoke-direct {v0, v1}, Ljava/lang/IllegalThreadStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 95
:cond_2a
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Cannot release a recycled or not yet acquired resource"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method setResourceListener(Lcom/bumptech/glide/load/Key;Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;)V
.registers 3
.line 31
iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->key:Lcom/bumptech/glide/load/Key;
.line 32
iput-object p2, p0, Lcom/bumptech/glide/load/engine/EngineResource;->listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;
return-void
.end method
.method public toString()Ljava/lang/String;
.registers 3
.line 107
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "EngineResource{isCacheable="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isCacheable:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v1, ", listener="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", key="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->key:Lcom/bumptech/glide/load/Key;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v1, ", acquired="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, ", isRecycled="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v1, ", resource="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const/16 v1, 0x7d
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method