DiskBasedCache.smali
.class public Lcom/android/volley/toolbox/DiskBasedCache;
.super Ljava/lang/Object;
.source "DiskBasedCache.java"
# interfaces
.implements Lcom/android/volley/Cache;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/android/volley/toolbox/DiskBasedCache$1;,
Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;,
Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
}
.end annotation
# static fields
.field private static final CACHE_MAGIC:I = 0x20150306
.field private static final DEFAULT_DISK_USAGE_BYTES:I = 0x500000
.field private static final HYSTERESIS_FACTOR:F = 0.9f
# instance fields
.field private final mEntries:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;",
">;"
}
.end annotation
.end field
.field private final mMaxCacheSizeInBytes:I
.field private final mRootDirectory:Ljava/io/File;
.field private mTotalSize:J
# direct methods
.method public constructor <init>(Ljava/io/File;)V
.registers 3
.prologue
.line 83
const/high16 v0, 0x500000
invoke-direct {p0, p1, v0}, Lcom/android/volley/toolbox/DiskBasedCache;-><init>(Ljava/io/File;I)V
.line 84
return-void
.end method
.method public constructor <init>(Ljava/io/File;I)V
.registers 7
.prologue
.line 72
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 46
new-instance v0, Ljava/util/LinkedHashMap;
const/16 v1, 0x10
const/high16 v2, 0x3f400000 # 0.75f
const/4 v3, 0x1
invoke-direct {v0, v1, v2, v3}, Ljava/util/LinkedHashMap;-><init>(IFZ)V
iput-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
.line 50
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
.line 73
iput-object p1, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
.line 74
iput p2, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mMaxCacheSizeInBytes:I
.line 75
return-void
.end method
.method private getFilenameForKey(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.prologue
.line 252
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
div-int/lit8 v0, v0, 0x2
.line 253
const/4 v1, 0x0
invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/String;->hashCode()I
move-result v1
invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
.line 254
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v0
invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 255
return-object v0
.end method
.method private pruneIfNeeded(I)V
.registers 16
.prologue
const/4 v13, 0x2
const/4 v12, 0x1
const/4 v2, 0x0
.line 270
iget-wide v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
int-to-long v4, p1
add-long/2addr v0, v4
iget v3, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mMaxCacheSizeInBytes:I
int-to-long v4, v3
cmp-long v0, v0, v4
if-gez v0, :cond_f
.line 304
:cond_e
:goto_e
return-void
.line 273
:cond_f
sget-boolean v0, Lcom/android/volley/VolleyLog;->DEBUG:Z
if-eqz v0, :cond_1a
.line 274
const-string v0, "Pruning old cache entries."
new-array v1, v2, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/android/volley/VolleyLog;->v(Ljava/lang/String;[Ljava/lang/Object;)V
.line 277
:cond_1a
iget-wide v4, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
.line 279
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v6
.line 281
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
move v1, v2
.line 282
:goto_2b
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_a3
.line 283
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 284
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
.line 285
iget-object v8, v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->key:Ljava/lang/String;
invoke-virtual {p0, v8}, Lcom/android/volley/toolbox/DiskBasedCache;->getFileForKey(Ljava/lang/String;)Ljava/io/File;
move-result-object v8
invoke-virtual {v8}, Ljava/io/File;->delete()Z
move-result v8
.line 286
if-eqz v8, :cond_8d
.line 287
iget-wide v8, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
iget-wide v10, v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->size:J
sub-long/2addr v8, v10
iput-wide v8, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
.line 292
:goto_50
invoke-interface {v3}, Ljava/util/Iterator;->remove()V
.line 293
add-int/lit8 v0, v1, 0x1
.line 295
iget-wide v8, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
int-to-long v10, p1
add-long/2addr v8, v10
long-to-float v1, v8
iget v8, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mMaxCacheSizeInBytes:I
int-to-float v8, v8
const v9, 0x3f666666 # 0.9f
mul-float/2addr v8, v9
cmpg-float v1, v1, v8
if-gez v1, :cond_a1
.line 300
:goto_65
sget-boolean v1, Lcom/android/volley/VolleyLog;->DEBUG:Z
if-eqz v1, :cond_e
.line 301
const-string v1, "pruned %d files, %d bytes, %d ms"
const/4 v3, 0x3
new-array v3, v3, [Ljava/lang/Object;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
aput-object v0, v3, v2
iget-wide v8, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
sub-long v4, v8, v4
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
aput-object v0, v3, v12
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v4
sub-long/2addr v4, v6
invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
aput-object v0, v3, v13
invoke-static {v1, v3}, Lcom/android/volley/VolleyLog;->v(Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_e
.line 289
:cond_8d
const-string v8, "Could not delete cache entry for key=%s, filename=%s"
new-array v9, v13, [Ljava/lang/Object;
iget-object v10, v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->key:Ljava/lang/String;
aput-object v10, v9, v2
iget-object v0, v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->key:Ljava/lang/String;
invoke-direct {p0, v0}, Lcom/android/volley/toolbox/DiskBasedCache;->getFilenameForKey(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
aput-object v0, v9, v12
invoke-static {v8, v9}, Lcom/android/volley/VolleyLog;->d(Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_50
:cond_a1
move v1, v0
.line 298
goto :goto_2b
:cond_a3
move v0, v1
goto :goto_65
.end method
.method private putEntry(Ljava/lang/String;Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;)V
.registers 9
.prologue
.line 312
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_15
.line 313
iget-wide v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
iget-wide v2, p2, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->size:J
add-long/2addr v0, v2
iput-wide v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
.line 318
:goto_f
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 319
return-void
.line 315
:cond_15
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
.line 316
iget-wide v2, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
iget-wide v4, p2, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->size:J
iget-wide v0, v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->size:J
sub-long v0, v4, v0
add-long/2addr v0, v2
iput-wide v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
goto :goto_f
.end method
.method private static read(Ljava/io/InputStream;)I
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 499
invoke-virtual {p0}, Ljava/io/InputStream;->read()I
move-result v0
.line 500
const/4 v1, -0x1
if-ne v0, v1, :cond_d
.line 501
new-instance v0, Ljava/io/EOFException;
invoke-direct {v0}, Ljava/io/EOFException;-><init>()V
throw v0
.line 503
:cond_d
return v0
.end method
.method static readInt(Ljava/io/InputStream;)I
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 514
const/4 v0, 0x0
.line 515
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v1
shl-int/lit8 v1, v1, 0x0
or-int/2addr v0, v1
.line 516
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v1
shl-int/lit8 v1, v1, 0x8
or-int/2addr v0, v1
.line 517
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v1
shl-int/lit8 v1, v1, 0x10
or-int/2addr v0, v1
.line 518
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v1
shl-int/lit8 v1, v1, 0x18
or-int/2addr v0, v1
.line 519
return v0
.end method
.method static readLong(Ljava/io/InputStream;)J
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const-wide/16 v6, 0xff
.line 534
const-wide/16 v0, 0x0
.line 535
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/4 v4, 0x0
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 536
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/16 v4, 0x8
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 537
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/16 v4, 0x10
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 538
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/16 v4, 0x18
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 539
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/16 v4, 0x20
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 540
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/16 v4, 0x28
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 541
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/16 v4, 0x30
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 542
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->read(Ljava/io/InputStream;)I
move-result v2
int-to-long v2, v2
and-long/2addr v2, v6
const/16 v4, 0x38
shl-long/2addr v2, v4
or-long/2addr v0, v2
.line 543
return-wide v0
.end method
.method static readString(Ljava/io/InputStream;)Ljava/lang/String;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 553
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->readLong(Ljava/io/InputStream;)J
move-result-wide v0
long-to-int v0, v0
.line 554
invoke-static {p0, v0}, Lcom/android/volley/toolbox/DiskBasedCache;->streamToBytes(Ljava/io/InputStream;I)[B
move-result-object v0
.line 555
new-instance v1, Ljava/lang/String;
const-string v2, "UTF-8"
invoke-direct {v1, v0, v2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
return-object v1
.end method
.method static readStringStringMap(Ljava/io/InputStream;)Ljava/util/Map;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/InputStream;",
")",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 571
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->readInt(Ljava/io/InputStream;)I
move-result v2
.line 572
if-nez v2, :cond_23
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v0
.line 575
:goto_a
const/4 v1, 0x0
:goto_b
if-ge v1, v2, :cond_29
.line 576
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->readString(Ljava/io/InputStream;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v3
.line 577
invoke-static {p0}, Lcom/android/volley/toolbox/DiskBasedCache;->readString(Ljava/io/InputStream;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->intern()Ljava/lang/String;
move-result-object v4
.line 578
invoke-interface {v0, v3, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 575
add-int/lit8 v1, v1, 0x1
goto :goto_b
.line 572
:cond_23
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0, v2}, Ljava/util/HashMap;-><init>(I)V
goto :goto_a
.line 580
:cond_29
return-object v0
.end method
.method private removeEntry(Ljava/lang/String;)V
.registers 6
.prologue
.line 325
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
.line 326
if-eqz v0, :cond_17
.line 327
iget-wide v2, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
iget-wide v0, v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->size:J
sub-long v0, v2, v0
iput-wide v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
.line 328
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 330
:cond_17
return-void
.end method
.method private static streamToBytes(Ljava/io/InputStream;I)[B
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Ljava/lang/NegativeArraySizeException;
}
.end annotation
.prologue
.line 336
new-array v1, p1, [B
.line 338
const/4 v0, 0x0
.line 339
:goto_3
if-ge v0, p1, :cond_10
sub-int v2, p1, v0
invoke-virtual {p0, v1, v0, v2}, Ljava/io/InputStream;->read([BII)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_10
.line 340
add-int/2addr v0, v2
goto :goto_3
.line 342
:cond_10
if-eq v0, p1, :cond_3b
.line 343
new-instance v1, Ljava/io/IOException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Expected "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " bytes, read "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " bytes"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v1
.line 345
:cond_3b
return-object v1
.end method
.method static writeInt(Ljava/io/OutputStream;I)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 507
shr-int/lit8 v0, p1, 0x0
and-int/lit16 v0, v0, 0xff
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 508
shr-int/lit8 v0, p1, 0x8
and-int/lit16 v0, v0, 0xff
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 509
shr-int/lit8 v0, p1, 0x10
and-int/lit16 v0, v0, 0xff
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 510
shr-int/lit8 v0, p1, 0x18
and-int/lit16 v0, v0, 0xff
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 511
return-void
.end method
.method static writeLong(Ljava/io/OutputStream;J)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 523
const/4 v0, 0x0
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 524
const/16 v0, 0x8
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 525
const/16 v0, 0x10
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 526
const/16 v0, 0x18
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 527
const/16 v0, 0x20
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 528
const/16 v0, 0x28
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 529
const/16 v0, 0x30
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 530
const/16 v0, 0x38
ushr-long v0, p1, v0
long-to-int v0, v0
int-to-byte v0, v0
invoke-virtual {p0, v0}, Ljava/io/OutputStream;->write(I)V
.line 531
return-void
.end method
.method static writeString(Ljava/io/OutputStream;Ljava/lang/String;)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 547
const-string v0, "UTF-8"
invoke-virtual {p1, v0}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B
move-result-object v0
.line 548
array-length v1, v0
int-to-long v2, v1
invoke-static {p0, v2, v3}, Lcom/android/volley/toolbox/DiskBasedCache;->writeLong(Ljava/io/OutputStream;J)V
.line 549
const/4 v1, 0x0
array-length v2, v0
invoke-virtual {p0, v0, v1, v2}, Ljava/io/OutputStream;->write([BII)V
.line 550
return-void
.end method
.method static writeStringStringMap(Ljava/util/Map;Ljava/io/OutputStream;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Ljava/io/OutputStream;",
")V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 559
if-eqz p0, :cond_30
.line 560
invoke-interface {p0}, Ljava/util/Map;->size()I
move-result v0
invoke-static {p1, v0}, Lcom/android/volley/toolbox/DiskBasedCache;->writeInt(Ljava/io/OutputStream;I)V
.line 561
invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_11
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_34
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 562
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-static {p1, v1}, Lcom/android/volley/toolbox/DiskBasedCache;->writeString(Ljava/io/OutputStream;Ljava/lang/String;)V
.line 563
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
invoke-static {p1, v0}, Lcom/android/volley/toolbox/DiskBasedCache;->writeString(Ljava/io/OutputStream;Ljava/lang/String;)V
goto :goto_11
.line 566
:cond_30
const/4 v0, 0x0
invoke-static {p1, v0}, Lcom/android/volley/toolbox/DiskBasedCache;->writeInt(Ljava/io/OutputStream;I)V
.line 568
:cond_34
return-void
.end method
# virtual methods
.method public declared-synchronized clear()V
.registers 5
.prologue
const/4 v0, 0x0
.line 91
monitor-enter p0
:try_start_2
iget-object v1, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v1
.line 92
if-eqz v1, :cond_15
.line 93
array-length v2, v1
:goto_b
if-ge v0, v2, :cond_15
aget-object v3, v1, v0
.line 94
invoke-virtual {v3}, Ljava/io/File;->delete()Z
.line 93
add-int/lit8 v0, v0, 0x1
goto :goto_b
.line 97
:cond_15
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->clear()V
.line 98
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mTotalSize:J
.line 99
const-string v0, "Cache cleared."
const/4 v1, 0x0
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v1}, Lcom/android/volley/VolleyLog;->d(Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_26
.catchall {:try_start_2 .. :try_end_26} :catchall_28
.line 100
monitor-exit p0
return-void
.line 91
:catchall_28
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized get(Ljava/lang/String;)Lcom/android/volley/Cache$Entry;
.registers 10
.prologue
const/4 v1, 0x0
.line 107
monitor-enter p0
:try_start_2
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mEntries:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
:try_end_a
.catchall {:try_start_2 .. :try_end_a} :catchall_79
.line 109
if-nez v0, :cond_f
move-object v0, v1
.line 132
:cond_d
:goto_d
monitor-exit p0
return-object v0
.line 113
:cond_f
:try_start_f
invoke-virtual {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->getFileForKey(Ljava/lang/String;)Ljava/io/File;
:try_end_12
.catchall {:try_start_f .. :try_end_12} :catchall_79
move-result-object v3
.line 116
:try_start_13
new-instance v2, Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;
new-instance v4, Ljava/io/FileInputStream;
invoke-direct {v4, v3}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
const/4 v5, 0x0
invoke-direct {v2, v4, v5}, Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;-><init>(Ljava/io/InputStream;Lcom/android/volley/toolbox/DiskBasedCache$1;)V
:try_end_1e
.catch Ljava/io/IOException; {:try_start_13 .. :try_end_1e} :catch_3d
.catch Ljava/lang/NegativeArraySizeException; {:try_start_13 .. :try_end_1e} :catch_62
.catchall {:try_start_13 .. :try_end_1e} :catchall_71
.line 117
:try_start_1e
invoke-static {v2}, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->readHeader(Ljava/io/InputStream;)Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
.line 118
invoke-virtual {v3}, Ljava/io/File;->length()J
move-result-wide v4
# getter for: Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;->bytesRead:I
invoke-static {v2}, Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;->access$100(Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;)I
move-result v6
int-to-long v6, v6
sub-long/2addr v4, v6
long-to-int v4, v4
invoke-static {v2, v4}, Lcom/android/volley/toolbox/DiskBasedCache;->streamToBytes(Ljava/io/InputStream;I)[B
move-result-object v4
.line 119
invoke-virtual {v0, v4}, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->toCacheEntry([B)Lcom/android/volley/Cache$Entry;
:try_end_33
.catch Ljava/io/IOException; {:try_start_1e .. :try_end_33} :catch_83
.catch Ljava/lang/NegativeArraySizeException; {:try_start_1e .. :try_end_33} :catch_81
.catchall {:try_start_1e .. :try_end_33} :catchall_7f
move-result-object v0
.line 128
if-eqz v2, :cond_d
.line 130
:try_start_36
invoke-virtual {v2}, Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;->close()V
:try_end_39
.catch Ljava/io/IOException; {:try_start_36 .. :try_end_39} :catch_3a
.catchall {:try_start_36 .. :try_end_39} :catchall_79
goto :goto_d
.line 131
:catch_3a
move-exception v0
move-object v0, v1
.line 132
goto :goto_d
.line 120
:catch_3d
move-exception v0
move-object v2, v1
.line 121
:goto_3f
:try_start_3f
const-string v4, "%s: %s"
const/4 v5, 0x2
new-array v5, v5, [Ljava/lang/Object;
const/4 v6, 0x0
invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
aput-object v3, v5, v6
const/4 v3, 0x1
invoke-virtual {v0}, Ljava/io/IOException;->toString()Ljava/lang/String;
move-result-object v0
aput-object v0, v5, v3
invoke-static {v4, v5}, Lcom/android/volley/VolleyLog;->d(Ljava/lang/String;[Ljava/lang/Object;)V
.line 122
invoke-virtual {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->remove(Ljava/lang/String;)V
:try_end_58
.catchall {:try_start_3f .. :try_end_58} :catchall_7f
.line 128
if-eqz v2, :cond_5d
.line 130
:try_start_5a
invoke-virtual {v2}, Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;->close()V
:try_end_5d
.catch Ljava/io/IOException; {:try_start_5a .. :try_end_5d} :catch_5f
.catchall {:try_start_5a .. :try_end_5d} :catchall_79
:cond_5d
move-object v0, v1
.line 132
goto :goto_d
.line 131
:catch_5f
move-exception v0
move-object v0, v1
.line 132
goto :goto_d
.line 124
:catch_62
move-exception v0
move-object v2, v1
.line 125
:goto_64
:try_start_64
invoke-virtual {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->remove(Ljava/lang/String;)V
:try_end_67
.catchall {:try_start_64 .. :try_end_67} :catchall_7f
.line 128
if-eqz v2, :cond_6c
.line 130
:try_start_69
invoke-virtual {v2}, Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;->close()V
:try_end_6c
.catch Ljava/io/IOException; {:try_start_69 .. :try_end_6c} :catch_6e
.catchall {:try_start_69 .. :try_end_6c} :catchall_79
:cond_6c
move-object v0, v1
.line 132
goto :goto_d
.line 131
:catch_6e
move-exception v0
move-object v0, v1
.line 132
goto :goto_d
.line 128
:catchall_71
move-exception v0
move-object v2, v1
:goto_73
if-eqz v2, :cond_78
.line 130
:try_start_75
invoke-virtual {v2}, Lcom/android/volley/toolbox/DiskBasedCache$CountingInputStream;->close()V
:try_end_78
.catch Ljava/io/IOException; {:try_start_75 .. :try_end_78} :catch_7c
.catchall {:try_start_75 .. :try_end_78} :catchall_79
.line 132
:cond_78
:try_start_78
throw v0
:try_end_79
.catchall {:try_start_78 .. :try_end_79} :catchall_79
.line 107
:catchall_79
move-exception v0
monitor-exit p0
throw v0
.line 131
:catch_7c
move-exception v0
move-object v0, v1
.line 132
goto :goto_d
.line 128
:catchall_7f
move-exception v0
goto :goto_73
.line 124
:catch_81
move-exception v0
goto :goto_64
.line 120
:catch_83
move-exception v0
goto :goto_3f
.end method
.method public getFileForKey(Ljava/lang/String;)Ljava/io/File;
.registers 5
.prologue
.line 262
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-direct {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->getFilenameForKey(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
return-object v0
.end method
.method public declared-synchronized initialize()V
.registers 10
.prologue
const/4 v0, 0x0
.line 144
monitor-enter p0
:try_start_2
iget-object v1, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_25
.line 145
iget-object v0, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
move-result v0
if-nez v0, :cond_23
.line 146
const-string v0, "Unable to create cache dir %s"
const/4 v1, 0x1
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
iget-object v3, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/android/volley/VolleyLog;->e(Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_23
.catchall {:try_start_2 .. :try_end_23} :catchall_7f
.line 182
:cond_23
monitor-exit p0
return-void
.line 151
:cond_25
:try_start_25
iget-object v1, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v3
.line 152
if-eqz v3, :cond_23
.line 155
array-length v4, v3
move v2, v0
:goto_2f
if-ge v2, v4, :cond_23
aget-object v5, v3, v2
:try_end_33
.catchall {:try_start_25 .. :try_end_33} :catchall_7f
.line 156
const/4 v1, 0x0
.line 158
:try_start_34
new-instance v0, Ljava/io/BufferedInputStream;
new-instance v6, Ljava/io/FileInputStream;
invoke-direct {v6, v5}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-direct {v0, v6}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
:try_end_3e
.catch Ljava/io/IOException; {:try_start_34 .. :try_end_3e} :catch_56
.catch Ljava/lang/NegativeArraySizeException; {:try_start_34 .. :try_end_3e} :catch_65
.catchall {:try_start_34 .. :try_end_3e} :catchall_78
.line 159
:try_start_3e
invoke-static {v0}, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->readHeader(Ljava/io/InputStream;)Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
move-result-object v1
.line 160
invoke-virtual {v5}, Ljava/io/File;->length()J
move-result-wide v6
iput-wide v6, v1, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->size:J
.line 161
iget-object v6, v1, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->key:Ljava/lang/String;
invoke-direct {p0, v6, v1}, Lcom/android/volley/toolbox/DiskBasedCache;->putEntry(Ljava/lang/String;Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;)V
:try_end_4d
.catch Ljava/io/IOException; {:try_start_3e .. :try_end_4d} :catch_90
.catch Ljava/lang/NegativeArraySizeException; {:try_start_3e .. :try_end_4d} :catch_8b
.catchall {:try_start_3e .. :try_end_4d} :catchall_86
.line 176
if-eqz v0, :cond_52
.line 177
:try_start_4f
invoke-virtual {v0}, Ljava/io/BufferedInputStream;->close()V
:try_end_52
.catch Ljava/io/IOException; {:try_start_4f .. :try_end_52} :catch_82
.catchall {:try_start_4f .. :try_end_52} :catchall_7f
.line 155
:cond_52
:goto_52
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_2f
.line 162
:catch_56
move-exception v0
move-object v0, v1
.line 163
:goto_58
if-eqz v5, :cond_5d
.line 164
:try_start_5a
invoke-virtual {v5}, Ljava/io/File;->delete()Z
:try_end_5d
.catchall {:try_start_5a .. :try_end_5d} :catchall_86
.line 176
:cond_5d
if-eqz v0, :cond_52
.line 177
:try_start_5f
invoke-virtual {v0}, Ljava/io/BufferedInputStream;->close()V
:try_end_62
.catch Ljava/io/IOException; {:try_start_5f .. :try_end_62} :catch_63
.catchall {:try_start_5f .. :try_end_62} :catchall_7f
goto :goto_52
.line 179
:catch_63
move-exception v0
goto :goto_52
.line 166
:catch_65
move-exception v0
.line 167
:goto_66
if-eqz v5, :cond_6b
.line 169
:try_start_68
invoke-virtual {v5}, Ljava/io/File;->delete()Z
:try_end_6b
.catch Ljava/lang/Exception; {:try_start_68 .. :try_end_6b} :catch_73
.catchall {:try_start_68 .. :try_end_6b} :catchall_78
.line 176
:cond_6b
:goto_6b
if-eqz v1, :cond_52
.line 177
:try_start_6d
invoke-virtual {v1}, Ljava/io/BufferedInputStream;->close()V
:try_end_70
.catch Ljava/io/IOException; {:try_start_6d .. :try_end_70} :catch_71
.catchall {:try_start_6d .. :try_end_70} :catchall_7f
goto :goto_52
.line 179
:catch_71
move-exception v0
goto :goto_52
.line 170
:catch_73
move-exception v5
.line 171
:try_start_74
invoke-virtual {v0}, Ljava/lang/NegativeArraySizeException;->printStackTrace()V
:try_end_77
.catchall {:try_start_74 .. :try_end_77} :catchall_78
goto :goto_6b
.line 175
:catchall_78
move-exception v0
.line 176
:goto_79
if-eqz v1, :cond_7e
.line 177
:try_start_7b
invoke-virtual {v1}, Ljava/io/BufferedInputStream;->close()V
:try_end_7e
.catch Ljava/io/IOException; {:try_start_7b .. :try_end_7e} :catch_84
.catchall {:try_start_7b .. :try_end_7e} :catchall_7f
.line 179
:cond_7e
:goto_7e
:try_start_7e
throw v0
:try_end_7f
.catchall {:try_start_7e .. :try_end_7f} :catchall_7f
.line 144
:catchall_7f
move-exception v0
monitor-exit p0
throw v0
.line 179
:catch_82
move-exception v0
goto :goto_52
:catch_84
move-exception v1
goto :goto_7e
.line 175
:catchall_86
move-exception v1
move-object v8, v1
move-object v1, v0
move-object v0, v8
goto :goto_79
.line 166
:catch_8b
move-exception v1
move-object v8, v1
move-object v1, v0
move-object v0, v8
goto :goto_66
.line 162
:catch_90
move-exception v1
goto :goto_58
.end method
.method public declared-synchronized invalidate(Ljava/lang/String;Z)V
.registers 7
.prologue
.line 191
monitor-enter p0
:try_start_1
invoke-virtual {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->get(Ljava/lang/String;)Lcom/android/volley/Cache$Entry;
move-result-object v0
.line 192
if-eqz v0, :cond_14
.line 193
const-wide/16 v2, 0x0
iput-wide v2, v0, Lcom/android/volley/Cache$Entry;->softTtl:J
.line 194
if-eqz p2, :cond_11
.line 195
const-wide/16 v2, 0x0
iput-wide v2, v0, Lcom/android/volley/Cache$Entry;->ttl:J
.line 197
:cond_11
invoke-virtual {p0, p1, v0}, Lcom/android/volley/toolbox/DiskBasedCache;->put(Ljava/lang/String;Lcom/android/volley/Cache$Entry;)V
:try_end_14
.catchall {:try_start_1 .. :try_end_14} :catchall_16
.line 200
:cond_14
monitor-exit p0
return-void
.line 191
:catchall_16
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized put(Ljava/lang/String;Lcom/android/volley/Cache$Entry;)V
.registers 8
.prologue
.line 207
monitor-enter p0
:try_start_1
iget-object v0, p2, Lcom/android/volley/Cache$Entry;->data:[B
array-length v0, v0
invoke-direct {p0, v0}, Lcom/android/volley/toolbox/DiskBasedCache;->pruneIfNeeded(I)V
.line 208
invoke-virtual {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->getFileForKey(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
.line 209
iget-object v1, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_18
.line 210
iget-object v1, p0, Lcom/android/volley/toolbox/DiskBasedCache;->mRootDirectory:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z
:try_end_18
.catchall {:try_start_1 .. :try_end_18} :catchall_64
.line 213
:cond_18
:try_start_18
new-instance v1, Ljava/io/FileOutputStream;
invoke-direct {v1, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
.line 214
new-instance v2, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;
invoke-direct {v2, p1, p2}, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;-><init>(Ljava/lang/String;Lcom/android/volley/Cache$Entry;)V
.line 215
invoke-virtual {v2, v1}, Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;->writeHeader(Ljava/io/OutputStream;)Z
move-result v3
.line 216
if-nez v3, :cond_58
.line 217
invoke-virtual {v1}, Ljava/io/FileOutputStream;->close()V
.line 218
const-string v1, "Failed to write header for %s"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
invoke-static {v1, v2}, Lcom/android/volley/VolleyLog;->d(Ljava/lang/String;[Ljava/lang/Object;)V
.line 219
new-instance v1, Ljava/io/IOException;
invoke-direct {v1}, Ljava/io/IOException;-><init>()V
throw v1
:try_end_40
.catch Ljava/io/IOException; {:try_start_18 .. :try_end_40} :catch_40
.catchall {:try_start_18 .. :try_end_40} :catchall_64
.line 225
:catch_40
move-exception v1
.line 227
:try_start_41
invoke-virtual {v0}, Ljava/io/File;->delete()Z
move-result v1
.line 228
if-nez v1, :cond_56
.line 229
const-string v1, "Could not clean up file %s"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
aput-object v0, v2, v3
invoke-static {v1, v2}, Lcom/android/volley/VolleyLog;->d(Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_56
.catchall {:try_start_41 .. :try_end_56} :catchall_64
.line 231
:cond_56
:goto_56
monitor-exit p0
return-void
.line 221
:cond_58
:try_start_58
iget-object v3, p2, Lcom/android/volley/Cache$Entry;->data:[B
invoke-virtual {v1, v3}, Ljava/io/FileOutputStream;->write([B)V
.line 222
invoke-virtual {v1}, Ljava/io/FileOutputStream;->close()V
.line 223
invoke-direct {p0, p1, v2}, Lcom/android/volley/toolbox/DiskBasedCache;->putEntry(Ljava/lang/String;Lcom/android/volley/toolbox/DiskBasedCache$CacheHeader;)V
:try_end_63
.catch Ljava/io/IOException; {:try_start_58 .. :try_end_63} :catch_40
.catchall {:try_start_58 .. :try_end_63} :catchall_64
goto :goto_56
.line 207
:catchall_64
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized remove(Ljava/lang/String;)V
.registers 6
.prologue
.line 238
monitor-enter p0
:try_start_1
invoke-virtual {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->getFileForKey(Ljava/lang/String;)Ljava/io/File;
move-result-object v0
invoke-virtual {v0}, Ljava/io/File;->delete()Z
move-result v0
.line 239
invoke-direct {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->removeEntry(Ljava/lang/String;)V
.line 240
if-nez v0, :cond_20
.line 241
const-string v0, "Could not delete cache entry for key=%s, filename=%s"
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
aput-object p1, v1, v2
const/4 v2, 0x1
invoke-direct {p0, p1}, Lcom/android/volley/toolbox/DiskBasedCache;->getFilenameForKey(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
aput-object v3, v1, v2
invoke-static {v0, v1}, Lcom/android/volley/VolleyLog;->d(Ljava/lang/String;[Ljava/lang/Object;)V
:try_end_20
.catchall {:try_start_1 .. :try_end_20} :catchall_22
.line 244
:cond_20
monitor-exit p0
return-void
.line 238
:catchall_22
move-exception v0
monitor-exit p0
throw v0
.end method