mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
2998 lines
78 KiB
Smali
2998 lines
78 KiB
Smali
.class public final Landroidx/media3/datasource/cache/SimpleCache;
|
|
.super Ljava/lang/Object;
|
|
.source "SimpleCache.java"
|
|
|
|
# interfaces
|
|
.implements Landroidx/media3/datasource/cache/Cache;
|
|
|
|
|
|
# static fields
|
|
.field private static final SUBDIRECTORY_COUNT:I = 0xa
|
|
|
|
.field private static final TAG:Ljava/lang/String; = "SimpleCache"
|
|
|
|
.field private static final UID_FILE_SUFFIX:Ljava/lang/String; = ".uid"
|
|
|
|
.field private static final lockedCacheDirs:Ljava/util/HashSet;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Ljava/util/HashSet<",
|
|
"Ljava/io/File;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
|
|
# instance fields
|
|
.field private final cacheDir:Ljava/io/File;
|
|
|
|
.field private final contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.field private final evictor:Landroidx/media3/datasource/cache/CacheEvictor;
|
|
|
|
.field private final fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
.field private initializationException:Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
.field private final listeners:Ljava/util/HashMap;
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"Ljava/util/HashMap<",
|
|
"Ljava/lang/String;",
|
|
"Ljava/util/ArrayList<",
|
|
"Landroidx/media3/datasource/cache/Cache$Listener;",
|
|
">;>;"
|
|
}
|
|
.end annotation
|
|
.end field
|
|
|
|
.field private final random:Ljava/util/Random;
|
|
|
|
.field private released:Z
|
|
|
|
.field private totalSpace:J
|
|
|
|
.field private final touchCacheSpans:Z
|
|
|
|
.field private uid:J
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 1
|
|
|
|
.line 64
|
|
new-instance v0, Ljava/util/HashSet;
|
|
|
|
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
|
|
|
|
sput-object v0, Landroidx/media3/datasource/cache/SimpleCache;->lockedCacheDirs:Ljava/util/HashSet;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Ljava/io/File;Landroidx/media3/datasource/cache/CacheEvictor;)V
|
|
.locals 7
|
|
.annotation runtime Ljava/lang/Deprecated;
|
|
.end annotation
|
|
|
|
const/4 v3, 0x0
|
|
|
|
const/4 v4, 0x0
|
|
|
|
const/4 v5, 0x0
|
|
|
|
const/4 v6, 0x1
|
|
|
|
move-object v0, p0
|
|
|
|
move-object v1, p1
|
|
|
|
move-object v2, p2
|
|
|
|
.line 141
|
|
invoke-direct/range {v0 .. v6}, Landroidx/media3/datasource/cache/SimpleCache;-><init>(Ljava/io/File;Landroidx/media3/datasource/cache/CacheEvictor;Landroidx/media3/database/DatabaseProvider;[BZZ)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Ljava/io/File;Landroidx/media3/datasource/cache/CacheEvictor;Landroidx/media3/database/DatabaseProvider;)V
|
|
.locals 7
|
|
|
|
const/4 v4, 0x0
|
|
|
|
const/4 v5, 0x0
|
|
|
|
const/4 v6, 0x0
|
|
|
|
move-object v0, p0
|
|
|
|
move-object v1, p1
|
|
|
|
move-object v2, p2
|
|
|
|
move-object v3, p3
|
|
|
|
.line 160
|
|
invoke-direct/range {v0 .. v6}, Landroidx/media3/datasource/cache/SimpleCache;-><init>(Ljava/io/File;Landroidx/media3/datasource/cache/CacheEvictor;Landroidx/media3/database/DatabaseProvider;[BZZ)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Ljava/io/File;Landroidx/media3/datasource/cache/CacheEvictor;Landroidx/media3/database/DatabaseProvider;[BZZ)V
|
|
.locals 7
|
|
|
|
.line 195
|
|
new-instance v6, Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
move-object v0, v6
|
|
|
|
move-object v1, p3
|
|
|
|
move-object v2, p1
|
|
|
|
move-object v3, p4
|
|
|
|
move v4, p5
|
|
|
|
move v5, p6
|
|
|
|
invoke-direct/range {v0 .. v5}, Landroidx/media3/datasource/cache/CachedContentIndex;-><init>(Landroidx/media3/database/DatabaseProvider;Ljava/io/File;[BZZ)V
|
|
|
|
if-eqz p3, :cond_0
|
|
|
|
if-nez p6, :cond_0
|
|
|
|
.line 205
|
|
new-instance p4, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
invoke-direct {p4, p3}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;-><init>(Landroidx/media3/database/DatabaseProvider;)V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
const/4 p4, 0x0
|
|
|
|
.line 195
|
|
:goto_0
|
|
invoke-direct {p0, p1, p2, v6, p4}, Landroidx/media3/datasource/cache/SimpleCache;-><init>(Ljava/io/File;Landroidx/media3/datasource/cache/CacheEvictor;Landroidx/media3/datasource/cache/CachedContentIndex;Landroidx/media3/datasource/cache/CacheFileMetadataIndex;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method constructor <init>(Ljava/io/File;Landroidx/media3/datasource/cache/CacheEvictor;Landroidx/media3/datasource/cache/CachedContentIndex;Landroidx/media3/datasource/cache/CacheFileMetadataIndex;)V
|
|
.locals 1
|
|
|
|
.line 213
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 214
|
|
invoke-static {p1}, Landroidx/media3/datasource/cache/SimpleCache;->lockFolder(Ljava/io/File;)Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
iput-object p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
iput-object p2, p0, Landroidx/media3/datasource/cache/SimpleCache;->evictor:Landroidx/media3/datasource/cache/CacheEvictor;
|
|
|
|
iput-object p3, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
iput-object p4, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
.line 222
|
|
new-instance p1, Ljava/util/HashMap;
|
|
|
|
invoke-direct {p1}, Ljava/util/HashMap;-><init>()V
|
|
|
|
iput-object p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 223
|
|
new-instance p1, Ljava/util/Random;
|
|
|
|
invoke-direct {p1}, Ljava/util/Random;-><init>()V
|
|
|
|
iput-object p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->random:Ljava/util/Random;
|
|
|
|
.line 224
|
|
invoke-interface {p2}, Landroidx/media3/datasource/cache/CacheEvictor;->requiresCacheSpanTouches()Z
|
|
|
|
move-result p1
|
|
|
|
iput-boolean p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->touchCacheSpans:Z
|
|
|
|
const-wide/16 p1, -0x1
|
|
|
|
iput-wide p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->uid:J
|
|
|
|
.line 228
|
|
new-instance p1, Landroid/os/ConditionVariable;
|
|
|
|
invoke-direct {p1}, Landroid/os/ConditionVariable;-><init>()V
|
|
|
|
.line 229
|
|
new-instance p2, Landroidx/media3/datasource/cache/SimpleCache$1;
|
|
|
|
const-string p3, "ExoPlayer:SimpleCacheInit"
|
|
|
|
invoke-direct {p2, p0, p3, p1}, Landroidx/media3/datasource/cache/SimpleCache$1;-><init>(Landroidx/media3/datasource/cache/SimpleCache;Ljava/lang/String;Landroid/os/ConditionVariable;)V
|
|
|
|
.line 238
|
|
invoke-virtual {p2}, Landroidx/media3/datasource/cache/SimpleCache$1;->start()V
|
|
|
|
.line 239
|
|
invoke-virtual {p1}, Landroid/os/ConditionVariable;->block()V
|
|
|
|
return-void
|
|
|
|
.line 215
|
|
:cond_0
|
|
new-instance p0, Ljava/lang/IllegalStateException;
|
|
|
|
new-instance p2, Ljava/lang/StringBuilder;
|
|
|
|
const-string p3, "Another SimpleCache instance uses the folder: "
|
|
|
|
invoke-direct {p2, p3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {p0, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
.end method
|
|
|
|
.method static synthetic access$000(Landroidx/media3/datasource/cache/SimpleCache;)V
|
|
.locals 0
|
|
|
|
.line 51
|
|
invoke-direct {p0}, Landroidx/media3/datasource/cache/SimpleCache;->initialize()V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method static synthetic access$100(Landroidx/media3/datasource/cache/SimpleCache;)Landroidx/media3/datasource/cache/CacheEvictor;
|
|
.locals 0
|
|
|
|
.line 51
|
|
iget-object p0, p0, Landroidx/media3/datasource/cache/SimpleCache;->evictor:Landroidx/media3/datasource/cache/CacheEvictor;
|
|
|
|
return-object p0
|
|
.end method
|
|
|
|
.method private addSpan(Landroidx/media3/datasource/cache/SimpleCacheSpan;)V
|
|
.locals 4
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 691
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/SimpleCacheSpan;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Landroidx/media3/datasource/cache/CachedContentIndex;->getOrAdd(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContent;->addSpan(Landroidx/media3/datasource/cache/SimpleCacheSpan;)V
|
|
|
|
iget-wide v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->totalSpace:J
|
|
|
|
.line 692
|
|
iget-wide v2, p1, Landroidx/media3/datasource/cache/SimpleCacheSpan;->length:J
|
|
|
|
add-long/2addr v0, v2
|
|
|
|
iput-wide v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->totalSpace:J
|
|
|
|
.line 693
|
|
invoke-direct {p0, p1}, Landroidx/media3/datasource/cache/SimpleCache;->notifySpanAdded(Landroidx/media3/datasource/cache/SimpleCacheSpan;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private static createCacheDirectories(Ljava/io/File;)V
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 807
|
|
invoke-virtual {p0}, Ljava/io/File;->mkdirs()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 808
|
|
:cond_0
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "Failed to create cache directory: "
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
const-string v0, "SimpleCache"
|
|
|
|
.line 809
|
|
invoke-static {v0, p0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 810
|
|
new-instance v0, Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
invoke-direct {v0, p0}, Landroidx/media3/datasource/cache/Cache$CacheException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw v0
|
|
|
|
:cond_1
|
|
:goto_0
|
|
return-void
|
|
.end method
|
|
|
|
.method private static createUid(Ljava/io/File;)J
|
|
.locals 5
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Ljava/io/IOException;
|
|
}
|
|
.end annotation
|
|
|
|
.line 789
|
|
new-instance v0, Ljava/security/SecureRandom;
|
|
|
|
invoke-direct {v0}, Ljava/security/SecureRandom;-><init>()V
|
|
|
|
invoke-virtual {v0}, Ljava/security/SecureRandom;->nextLong()J
|
|
|
|
move-result-wide v0
|
|
|
|
const-wide/high16 v2, -0x8000000000000000L
|
|
|
|
cmp-long v2, v0, v2
|
|
|
|
if-nez v2, :cond_0
|
|
|
|
const-wide/16 v0, 0x0
|
|
|
|
goto :goto_0
|
|
|
|
.line 790
|
|
:cond_0
|
|
invoke-static {v0, v1}, Ljava/lang/Math;->abs(J)J
|
|
|
|
move-result-wide v0
|
|
|
|
:goto_0
|
|
const/16 v2, 0x10
|
|
|
|
.line 792
|
|
invoke-static {v0, v1, v2}, Ljava/lang/Long;->toString(JI)Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
.line 793
|
|
new-instance v3, Ljava/io/File;
|
|
|
|
new-instance v4, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v2
|
|
|
|
const-string v4, ".uid"
|
|
|
|
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {v3, p0, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
|
|
|
|
.line 794
|
|
invoke-virtual {v3}, Ljava/io/File;->createNewFile()Z
|
|
|
|
move-result p0
|
|
|
|
if-eqz p0, :cond_1
|
|
|
|
return-wide v0
|
|
|
|
.line 796
|
|
:cond_1
|
|
new-instance p0, Ljava/io/IOException;
|
|
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v1, "Failed to create UID file: "
|
|
|
|
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-direct {p0, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
|
|
|
|
throw p0
|
|
.end method
|
|
|
|
.method public static delete(Ljava/io/File;Landroidx/media3/database/DatabaseProvider;)V
|
|
.locals 6
|
|
|
|
const-string v0, "Failed to delete file metadata: "
|
|
|
|
const-string v1, "SimpleCache"
|
|
|
|
.line 98
|
|
invoke-virtual {p0}, Ljava/io/File;->exists()Z
|
|
|
|
move-result v2
|
|
|
|
if-nez v2, :cond_0
|
|
|
|
return-void
|
|
|
|
.line 102
|
|
:cond_0
|
|
invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
|
|
|
|
move-result-object v2
|
|
|
|
if-nez v2, :cond_1
|
|
|
|
.line 104
|
|
invoke-virtual {p0}, Ljava/io/File;->delete()Z
|
|
|
|
return-void
|
|
|
|
:cond_1
|
|
if-eqz p1, :cond_2
|
|
|
|
.line 111
|
|
invoke-static {v2}, Landroidx/media3/datasource/cache/SimpleCache;->loadUid([Ljava/io/File;)J
|
|
|
|
move-result-wide v2
|
|
|
|
const-wide/16 v4, -0x1
|
|
|
|
cmp-long v4, v2, v4
|
|
|
|
if-eqz v4, :cond_2
|
|
|
|
.line 114
|
|
:try_start_0
|
|
invoke-static {p1, v2, v3}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;->delete(Landroidx/media3/database/DatabaseProvider;J)V
|
|
:try_end_0
|
|
.catch Landroidx/media3/database/DatabaseIOException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 116
|
|
:catch_0
|
|
new-instance v4, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {v4, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v4, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v4
|
|
|
|
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v4
|
|
|
|
invoke-static {v1, v4}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 119
|
|
:goto_0
|
|
:try_start_1
|
|
invoke-static {p1, v2, v3}, Landroidx/media3/datasource/cache/CachedContentIndex;->delete(Landroidx/media3/database/DatabaseProvider;J)V
|
|
:try_end_1
|
|
.catch Landroidx/media3/database/DatabaseIOException; {:try_start_1 .. :try_end_1} :catch_1
|
|
|
|
goto :goto_1
|
|
|
|
.line 121
|
|
:catch_1
|
|
new-instance p1, Ljava/lang/StringBuilder;
|
|
|
|
invoke-direct {p1, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {p1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-static {v1, p1}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 126
|
|
:cond_2
|
|
:goto_1
|
|
invoke-static {p0}, Landroidx/media3/common/util/Util;->recursiveDelete(Ljava/io/File;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private getSpan(Ljava/lang/String;JJ)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
.locals 5
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 669
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 671
|
|
invoke-static {p1, p2, p3, p4, p5}, Landroidx/media3/datasource/cache/SimpleCacheSpan;->createHole(Ljava/lang/String;JJ)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
move-result-object p0
|
|
|
|
return-object p0
|
|
|
|
.line 674
|
|
:cond_0
|
|
:goto_0
|
|
invoke-virtual {v0, p2, p3, p4, p5}, Landroidx/media3/datasource/cache/CachedContent;->getSpan(JJ)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
move-result-object p1
|
|
|
|
.line 675
|
|
iget-boolean v1, p1, Landroidx/media3/datasource/cache/SimpleCacheSpan;->isCached:Z
|
|
|
|
if-eqz v1, :cond_1
|
|
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/SimpleCacheSpan;->file:Ljava/io/File;
|
|
|
|
invoke-virtual {v1}, Ljava/io/File;->length()J
|
|
|
|
move-result-wide v1
|
|
|
|
iget-wide v3, p1, Landroidx/media3/datasource/cache/SimpleCacheSpan;->length:J
|
|
|
|
cmp-long v1, v1, v3
|
|
|
|
if-eqz v1, :cond_1
|
|
|
|
.line 678
|
|
invoke-direct {p0}, Landroidx/media3/datasource/cache/SimpleCache;->removeStaleSpans()V
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
return-object p1
|
|
.end method
|
|
|
|
.method private initialize()V
|
|
.locals 6
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 518
|
|
invoke-virtual {v0}, Ljava/io/File;->exists()Z
|
|
|
|
move-result v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
:try_start_0
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 520
|
|
invoke-static {v0}, Landroidx/media3/datasource/cache/SimpleCache;->createCacheDirectories(Ljava/io/File;)V
|
|
:try_end_0
|
|
.catch Landroidx/media3/datasource/cache/Cache$CacheException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
goto :goto_0
|
|
|
|
:catch_0
|
|
move-exception v0
|
|
|
|
iput-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->initializationException:Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
:goto_0
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 527
|
|
invoke-virtual {v0}, Ljava/io/File;->listFiles()[Ljava/io/File;
|
|
|
|
move-result-object v0
|
|
|
|
const-string v1, "SimpleCache"
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
.line 529
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
const-string v2, "Failed to list cache directory files: "
|
|
|
|
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v0
|
|
|
|
.line 530
|
|
invoke-static {v1, v0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 531
|
|
new-instance v1, Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
invoke-direct {v1, v0}, Landroidx/media3/datasource/cache/Cache$CacheException;-><init>(Ljava/lang/String;)V
|
|
|
|
iput-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->initializationException:Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
return-void
|
|
|
|
.line 535
|
|
:cond_1
|
|
invoke-static {v0}, Landroidx/media3/datasource/cache/SimpleCache;->loadUid([Ljava/io/File;)J
|
|
|
|
move-result-wide v2
|
|
|
|
iput-wide v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->uid:J
|
|
|
|
const-wide/16 v4, -0x1
|
|
|
|
cmp-long v2, v2, v4
|
|
|
|
if-nez v2, :cond_2
|
|
|
|
:try_start_1
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 538
|
|
invoke-static {v2}, Landroidx/media3/datasource/cache/SimpleCache;->createUid(Ljava/io/File;)J
|
|
|
|
move-result-wide v2
|
|
|
|
iput-wide v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->uid:J
|
|
:try_end_1
|
|
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1
|
|
|
|
goto :goto_1
|
|
|
|
:catch_1
|
|
move-exception v0
|
|
|
|
.line 540
|
|
new-instance v2, Ljava/lang/StringBuilder;
|
|
|
|
const-string v3, "Failed to create cache UID: "
|
|
|
|
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
iget-object v3, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
.line 541
|
|
invoke-static {v1, v2, v0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
.line 542
|
|
new-instance v1, Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
invoke-direct {v1, v2, v0}, Landroidx/media3/datasource/cache/Cache$CacheException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
iput-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->initializationException:Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
return-void
|
|
|
|
:cond_2
|
|
:goto_1
|
|
:try_start_2
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
iget-wide v3, p0, Landroidx/media3/datasource/cache/SimpleCache;->uid:J
|
|
|
|
.line 548
|
|
invoke-virtual {v2, v3, v4}, Landroidx/media3/datasource/cache/CachedContentIndex;->initialize(J)V
|
|
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
const/4 v3, 0x1
|
|
|
|
if-eqz v2, :cond_3
|
|
|
|
iget-wide v4, p0, Landroidx/media3/datasource/cache/SimpleCache;->uid:J
|
|
|
|
.line 550
|
|
invoke-virtual {v2, v4, v5}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;->initialize(J)V
|
|
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
.line 551
|
|
invoke-virtual {v2}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;->getAll()Ljava/util/Map;
|
|
|
|
move-result-object v2
|
|
|
|
iget-object v4, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 552
|
|
invoke-direct {p0, v4, v3, v0, v2}, Landroidx/media3/datasource/cache/SimpleCache;->loadDirectory(Ljava/io/File;Z[Ljava/io/File;Ljava/util/Map;)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
.line 553
|
|
invoke-interface {v2}, Ljava/util/Map;->keySet()Ljava/util/Set;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v0, v2}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;->removeAll(Ljava/util/Set;)V
|
|
|
|
goto :goto_2
|
|
|
|
:cond_3
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
const/4 v4, 0x0
|
|
|
|
.line 555
|
|
invoke-direct {p0, v2, v3, v0, v4}, Landroidx/media3/datasource/cache/SimpleCache;->loadDirectory(Ljava/io/File;Z[Ljava/io/File;Ljava/util/Map;)V
|
|
:try_end_2
|
|
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_3
|
|
|
|
:goto_2
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 564
|
|
invoke-virtual {v0}, Landroidx/media3/datasource/cache/CachedContentIndex;->removeEmpty()V
|
|
|
|
:try_start_3
|
|
iget-object p0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 566
|
|
invoke-virtual {p0}, Landroidx/media3/datasource/cache/CachedContentIndex;->store()V
|
|
:try_end_3
|
|
.catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_2
|
|
|
|
goto :goto_3
|
|
|
|
:catch_2
|
|
move-exception p0
|
|
|
|
const-string v0, "Storing index file failed"
|
|
|
|
.line 568
|
|
invoke-static {v1, v0, p0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
:goto_3
|
|
return-void
|
|
|
|
:catch_3
|
|
move-exception v0
|
|
|
|
.line 558
|
|
new-instance v2, Ljava/lang/StringBuilder;
|
|
|
|
const-string v3, "Failed to initialize cache indices: "
|
|
|
|
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
iget-object v3, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
.line 559
|
|
invoke-static {v1, v2, v0}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
.line 560
|
|
new-instance v1, Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
invoke-direct {v1, v2, v0}, Landroidx/media3/datasource/cache/Cache$CacheException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
iput-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->initializationException:Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method public static declared-synchronized isCacheFolderLocked(Ljava/io/File;)Z
|
|
.locals 2
|
|
|
|
const-class v0, Landroidx/media3/datasource/cache/SimpleCache;
|
|
|
|
monitor-enter v0
|
|
|
|
:try_start_0
|
|
sget-object v1, Landroidx/media3/datasource/cache/SimpleCache;->lockedCacheDirs:Ljava/util/HashSet;
|
|
|
|
.line 84
|
|
invoke-virtual {p0}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {v1, p0}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
monitor-exit v0
|
|
|
|
return p0
|
|
|
|
:catchall_0
|
|
move-exception p0
|
|
|
|
monitor-exit v0
|
|
|
|
throw p0
|
|
.end method
|
|
|
|
.method private loadDirectory(Ljava/io/File;Z[Ljava/io/File;Ljava/util/Map;)V
|
|
.locals 9
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/io/File;",
|
|
"Z[",
|
|
"Ljava/io/File;",
|
|
"Ljava/util/Map<",
|
|
"Ljava/lang/String;",
|
|
"Landroidx/media3/datasource/cache/CacheFileMetadata;",
|
|
">;)V"
|
|
}
|
|
.end annotation
|
|
|
|
if-eqz p3, :cond_8
|
|
|
|
.line 587
|
|
array-length v0, p3
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
goto :goto_4
|
|
|
|
.line 596
|
|
:cond_0
|
|
array-length p1, p3
|
|
|
|
const/4 v0, 0x0
|
|
|
|
move v1, v0
|
|
|
|
:goto_0
|
|
if-ge v1, p1, :cond_7
|
|
|
|
aget-object v8, p3, v1
|
|
|
|
.line 597
|
|
invoke-virtual {v8}, Ljava/io/File;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
if-eqz p2, :cond_1
|
|
|
|
const/16 v3, 0x2e
|
|
|
|
.line 598
|
|
invoke-virtual {v2, v3}, Ljava/lang/String;->indexOf(I)I
|
|
|
|
move-result v3
|
|
|
|
const/4 v4, -0x1
|
|
|
|
if-ne v3, v4, :cond_1
|
|
|
|
.line 599
|
|
invoke-virtual {v8}, Ljava/io/File;->listFiles()[Ljava/io/File;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-direct {p0, v8, v0, v2, p4}, Landroidx/media3/datasource/cache/SimpleCache;->loadDirectory(Ljava/io/File;Z[Ljava/io/File;Ljava/util/Map;)V
|
|
|
|
goto :goto_3
|
|
|
|
:cond_1
|
|
if-eqz p2, :cond_2
|
|
|
|
.line 602
|
|
invoke-static {v2}, Landroidx/media3/datasource/cache/CachedContentIndex;->isIndexFile(Ljava/lang/String;)Z
|
|
|
|
move-result v3
|
|
|
|
if-nez v3, :cond_6
|
|
|
|
const-string v3, ".uid"
|
|
|
|
invoke-virtual {v2, v3}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v3
|
|
|
|
if-eqz v3, :cond_2
|
|
|
|
goto :goto_3
|
|
|
|
:cond_2
|
|
if-eqz p4, :cond_3
|
|
|
|
.line 609
|
|
invoke-interface {p4, v2}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroidx/media3/datasource/cache/CacheFileMetadata;
|
|
|
|
goto :goto_1
|
|
|
|
:cond_3
|
|
const/4 v2, 0x0
|
|
|
|
:goto_1
|
|
if-eqz v2, :cond_4
|
|
|
|
.line 611
|
|
iget-wide v3, v2, Landroidx/media3/datasource/cache/CacheFileMetadata;->length:J
|
|
|
|
.line 612
|
|
iget-wide v5, v2, Landroidx/media3/datasource/cache/CacheFileMetadata;->lastTouchTimestamp:J
|
|
|
|
goto :goto_2
|
|
|
|
:cond_4
|
|
const-wide/16 v2, -0x1
|
|
|
|
const-wide v4, -0x7fffffffffffffffL # -4.9E-324
|
|
|
|
move-wide v5, v4
|
|
|
|
move-wide v3, v2
|
|
|
|
:goto_2
|
|
iget-object v7, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
move-object v2, v8
|
|
|
|
.line 616
|
|
invoke-static/range {v2 .. v7}, Landroidx/media3/datasource/cache/SimpleCacheSpan;->createCacheEntry(Ljava/io/File;JJLandroidx/media3/datasource/cache/CachedContentIndex;)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
move-result-object v2
|
|
|
|
if-eqz v2, :cond_5
|
|
|
|
.line 618
|
|
invoke-direct {p0, v2}, Landroidx/media3/datasource/cache/SimpleCache;->addSpan(Landroidx/media3/datasource/cache/SimpleCacheSpan;)V
|
|
|
|
goto :goto_3
|
|
|
|
.line 620
|
|
:cond_5
|
|
invoke-virtual {v8}, Ljava/io/File;->delete()Z
|
|
|
|
:cond_6
|
|
:goto_3
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_7
|
|
return-void
|
|
|
|
:cond_8
|
|
:goto_4
|
|
if-nez p2, :cond_9
|
|
|
|
.line 592
|
|
invoke-virtual {p1}, Ljava/io/File;->delete()Z
|
|
|
|
:cond_9
|
|
return-void
|
|
.end method
|
|
|
|
.method private static loadUid([Ljava/io/File;)J
|
|
.locals 5
|
|
|
|
.line 771
|
|
array-length v0, p0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
:goto_0
|
|
if-ge v1, v0, :cond_1
|
|
|
|
aget-object v2, p0, v1
|
|
|
|
.line 772
|
|
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
const-string v4, ".uid"
|
|
|
|
.line 773
|
|
invoke-virtual {v3, v4}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
|
|
|
|
move-result v4
|
|
|
|
if-eqz v4, :cond_0
|
|
|
|
.line 775
|
|
:try_start_0
|
|
invoke-static {v3}, Landroidx/media3/datasource/cache/SimpleCache;->parseUid(Ljava/lang/String;)J
|
|
|
|
move-result-wide v0
|
|
:try_end_0
|
|
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
return-wide v0
|
|
|
|
.line 778
|
|
:catch_0
|
|
new-instance v3, Ljava/lang/StringBuilder;
|
|
|
|
const-string v4, "Malformed UID file: "
|
|
|
|
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v3
|
|
|
|
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v3
|
|
|
|
const-string v4, "SimpleCache"
|
|
|
|
invoke-static {v4, v3}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
.line 779
|
|
invoke-virtual {v2}, Ljava/io/File;->delete()Z
|
|
|
|
:cond_0
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
const-wide/16 v0, -0x1
|
|
|
|
return-wide v0
|
|
.end method
|
|
|
|
.method private static declared-synchronized lockFolder(Ljava/io/File;)Z
|
|
.locals 2
|
|
|
|
const-class v0, Landroidx/media3/datasource/cache/SimpleCache;
|
|
|
|
monitor-enter v0
|
|
|
|
:try_start_0
|
|
sget-object v1, Landroidx/media3/datasource/cache/SimpleCache;->lockedCacheDirs:Ljava/util/HashSet;
|
|
|
|
.line 815
|
|
invoke-virtual {p0}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {v1, p0}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
|
|
|
|
move-result p0
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
monitor-exit v0
|
|
|
|
return p0
|
|
|
|
:catchall_0
|
|
move-exception p0
|
|
|
|
monitor-exit v0
|
|
|
|
throw p0
|
|
.end method
|
|
|
|
.method private notifySpanAdded(Landroidx/media3/datasource/cache/SimpleCacheSpan;)V
|
|
.locals 3
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 745
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/SimpleCacheSpan;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Ljava/util/ArrayList;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 747
|
|
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
|
|
|
|
move-result v1
|
|
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
:goto_0
|
|
if-ltz v1, :cond_0
|
|
|
|
.line 748
|
|
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroidx/media3/datasource/cache/Cache$Listener;
|
|
|
|
invoke-interface {v2, p0, p1}, Landroidx/media3/datasource/cache/Cache$Listener;->onSpanAdded(Landroidx/media3/datasource/cache/Cache;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->evictor:Landroidx/media3/datasource/cache/CacheEvictor;
|
|
|
|
.line 751
|
|
invoke-interface {v0, p0, p1}, Landroidx/media3/datasource/cache/CacheEvictor;->onSpanAdded(Landroidx/media3/datasource/cache/Cache;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private notifySpanRemoved(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
.locals 3
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 735
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/CacheSpan;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Ljava/util/ArrayList;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 737
|
|
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
|
|
|
|
move-result v1
|
|
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
:goto_0
|
|
if-ltz v1, :cond_0
|
|
|
|
.line 738
|
|
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroidx/media3/datasource/cache/Cache$Listener;
|
|
|
|
invoke-interface {v2, p0, p1}, Landroidx/media3/datasource/cache/Cache$Listener;->onSpanRemoved(Landroidx/media3/datasource/cache/Cache;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->evictor:Landroidx/media3/datasource/cache/CacheEvictor;
|
|
|
|
.line 741
|
|
invoke-interface {v0, p0, p1}, Landroidx/media3/datasource/cache/CacheEvictor;->onSpanRemoved(Landroidx/media3/datasource/cache/Cache;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private notifySpanTouched(Landroidx/media3/datasource/cache/SimpleCacheSpan;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
.locals 3
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 755
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/SimpleCacheSpan;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Ljava/util/ArrayList;
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 757
|
|
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
|
|
|
|
move-result v1
|
|
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
:goto_0
|
|
if-ltz v1, :cond_0
|
|
|
|
.line 758
|
|
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroidx/media3/datasource/cache/Cache$Listener;
|
|
|
|
invoke-interface {v2, p0, p1, p2}, Landroidx/media3/datasource/cache/Cache$Listener;->onSpanTouched(Landroidx/media3/datasource/cache/Cache;Landroidx/media3/datasource/cache/CacheSpan;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->evictor:Landroidx/media3/datasource/cache/CacheEvictor;
|
|
|
|
.line 761
|
|
invoke-interface {v0, p0, p1, p2}, Landroidx/media3/datasource/cache/CacheEvictor;->onSpanTouched(Landroidx/media3/datasource/cache/Cache;Landroidx/media3/datasource/cache/CacheSpan;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
return-void
|
|
.end method
|
|
|
|
.method private static parseUid(Ljava/lang/String;)J
|
|
.locals 2
|
|
|
|
const/16 v0, 0x2e
|
|
|
|
.line 802
|
|
invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(I)I
|
|
|
|
move-result v0
|
|
|
|
const/4 v1, 0x0
|
|
|
|
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
|
|
|
|
move-result-object p0
|
|
|
|
const/16 v0, 0x10
|
|
|
|
invoke-static {p0, v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;I)J
|
|
|
|
move-result-wide v0
|
|
|
|
return-wide v0
|
|
.end method
|
|
|
|
.method private removeSpanInternal(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
.locals 5
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 697
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/CacheSpan;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object v0
|
|
|
|
if-eqz v0, :cond_2
|
|
|
|
.line 698
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContent;->removeSpan(Landroidx/media3/datasource/cache/CacheSpan;)Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_0
|
|
iget-wide v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->totalSpace:J
|
|
|
|
.line 701
|
|
iget-wide v3, p1, Landroidx/media3/datasource/cache/CacheSpan;->length:J
|
|
|
|
sub-long/2addr v1, v3
|
|
|
|
iput-wide v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->totalSpace:J
|
|
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
if-eqz v1, :cond_1
|
|
|
|
.line 703
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/CacheSpan;->file:Ljava/io/File;
|
|
|
|
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
:try_start_0
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
.line 705
|
|
invoke-virtual {v2, v1}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;->remove(Ljava/lang/String;)V
|
|
:try_end_0
|
|
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 709
|
|
:catch_0
|
|
new-instance v2, Ljava/lang/StringBuilder;
|
|
|
|
const-string v3, "Failed to remove file index entry for: "
|
|
|
|
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
|
|
|
|
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
|
|
const-string v2, "SimpleCache"
|
|
|
|
invoke-static {v2, v1}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
:cond_1
|
|
:goto_0
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 712
|
|
iget-object v0, v0, Landroidx/media3/datasource/cache/CachedContent;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {v1, v0}, Landroidx/media3/datasource/cache/CachedContentIndex;->maybeRemove(Ljava/lang/String;)V
|
|
|
|
.line 713
|
|
invoke-direct {p0, p1}, Landroidx/media3/datasource/cache/SimpleCache;->notifySpanRemoved(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
:cond_2
|
|
:goto_1
|
|
return-void
|
|
.end method
|
|
|
|
.method private removeStaleSpans()V
|
|
.locals 8
|
|
|
|
.line 721
|
|
new-instance v0, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 722
|
|
invoke-virtual {v1}, Landroidx/media3/datasource/cache/CachedContentIndex;->getAll()Ljava/util/Collection;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
|
|
|
|
move-result-object v1
|
|
|
|
:cond_0
|
|
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
|
|
|
|
move-result v2
|
|
|
|
if-eqz v2, :cond_2
|
|
|
|
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
.line 723
|
|
invoke-virtual {v2}, Landroidx/media3/datasource/cache/CachedContent;->getSpans()Ljava/util/TreeSet;
|
|
|
|
move-result-object v2
|
|
|
|
invoke-virtual {v2}, Ljava/util/TreeSet;->iterator()Ljava/util/Iterator;
|
|
|
|
move-result-object v2
|
|
|
|
:cond_1
|
|
:goto_0
|
|
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
|
|
|
|
move-result v3
|
|
|
|
if-eqz v3, :cond_0
|
|
|
|
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
|
|
|
|
move-result-object v3
|
|
|
|
check-cast v3, Landroidx/media3/datasource/cache/CacheSpan;
|
|
|
|
.line 724
|
|
iget-object v4, v3, Landroidx/media3/datasource/cache/CacheSpan;->file:Ljava/io/File;
|
|
|
|
invoke-virtual {v4}, Ljava/io/File;->length()J
|
|
|
|
move-result-wide v4
|
|
|
|
iget-wide v6, v3, Landroidx/media3/datasource/cache/CacheSpan;->length:J
|
|
|
|
cmp-long v4, v4, v6
|
|
|
|
if-eqz v4, :cond_1
|
|
|
|
.line 725
|
|
invoke-virtual {v0, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
const/4 v1, 0x0
|
|
|
|
.line 729
|
|
:goto_1
|
|
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
|
|
|
|
move-result v2
|
|
|
|
if-ge v1, v2, :cond_3
|
|
|
|
.line 730
|
|
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
|
|
|
|
move-result-object v2
|
|
|
|
check-cast v2, Landroidx/media3/datasource/cache/CacheSpan;
|
|
|
|
invoke-direct {p0, v2}, Landroidx/media3/datasource/cache/SimpleCache;->removeSpanInternal(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
goto :goto_1
|
|
|
|
:cond_3
|
|
return-void
|
|
.end method
|
|
|
|
.method private touchSpan(Ljava/lang/String;Landroidx/media3/datasource/cache/SimpleCacheSpan;)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
.locals 9
|
|
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->touchCacheSpans:Z
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
return-object p2
|
|
|
|
.line 638
|
|
:cond_0
|
|
iget-object v0, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->file:Ljava/io/File;
|
|
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Ljava/io/File;
|
|
|
|
invoke-virtual {v0}, Ljava/io/File;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v2
|
|
|
|
.line 639
|
|
iget-wide v3, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->length:J
|
|
|
|
.line 640
|
|
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
|
|
|
|
move-result-wide v7
|
|
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
if-eqz v1, :cond_1
|
|
|
|
move-wide v5, v7
|
|
|
|
.line 644
|
|
:try_start_0
|
|
invoke-virtual/range {v1 .. v6}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;->set(Ljava/lang/String;JJ)V
|
|
:try_end_0
|
|
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
goto :goto_0
|
|
|
|
:catch_0
|
|
const-string v0, "SimpleCache"
|
|
|
|
const-string v1, "Failed to update index with new touch timestamp."
|
|
|
|
.line 646
|
|
invoke-static {v0, v1}, Landroidx/media3/common/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
|
|
|
|
:goto_0
|
|
const/4 v0, 0x0
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
const/4 v0, 0x1
|
|
|
|
:goto_1
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 654
|
|
invoke-virtual {v1, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-virtual {p1, p2, v7, v8, v0}, Landroidx/media3/datasource/cache/CachedContent;->setLastTouchTimestamp(Landroidx/media3/datasource/cache/SimpleCacheSpan;JZ)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
move-result-object p1
|
|
|
|
.line 655
|
|
invoke-direct {p0, p2, p1}, Landroidx/media3/datasource/cache/SimpleCache;->notifySpanTouched(Landroidx/media3/datasource/cache/SimpleCacheSpan;Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
|
|
return-object p1
|
|
.end method
|
|
|
|
.method private static declared-synchronized unlockFolder(Ljava/io/File;)V
|
|
.locals 2
|
|
|
|
const-class v0, Landroidx/media3/datasource/cache/SimpleCache;
|
|
|
|
monitor-enter v0
|
|
|
|
:try_start_0
|
|
sget-object v1, Landroidx/media3/datasource/cache/SimpleCache;->lockedCacheDirs:Ljava/util/HashSet;
|
|
|
|
.line 819
|
|
invoke-virtual {p0}, Ljava/io/File;->getAbsoluteFile()Ljava/io/File;
|
|
|
|
move-result-object p0
|
|
|
|
invoke-virtual {v1, p0}, Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 820
|
|
monitor-exit v0
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception p0
|
|
|
|
monitor-exit v0
|
|
|
|
throw p0
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public declared-synchronized addListener(Ljava/lang/String;Landroidx/media3/datasource/cache/Cache$Listener;)Ljava/util/NavigableSet;
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
"Landroidx/media3/datasource/cache/Cache$Listener;",
|
|
")",
|
|
"Ljava/util/NavigableSet<",
|
|
"Landroidx/media3/datasource/cache/CacheSpan;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 277
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 278
|
|
invoke-static {p1}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 279
|
|
invoke-static {p2}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 280
|
|
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Ljava/util/ArrayList;
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 282
|
|
new-instance v0, Ljava/util/ArrayList;
|
|
|
|
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 283
|
|
invoke-virtual {v1, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 285
|
|
:cond_0
|
|
invoke-virtual {v0, p2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
|
|
|
|
.line 286
|
|
invoke-virtual {p0, p1}, Landroidx/media3/datasource/cache/SimpleCache;->getCachedSpans(Ljava/lang/String;)Ljava/util/NavigableSet;
|
|
|
|
move-result-object p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
monitor-exit p0
|
|
|
|
return-object p1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized applyContentMetadataMutations(Ljava/lang/String;Landroidx/media3/datasource/cache/ContentMetadataMutations;)V
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 499
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 500
|
|
invoke-virtual {p0}, Landroidx/media3/datasource/cache/SimpleCache;->checkInitialization()V
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 502
|
|
invoke-virtual {v0, p1, p2}, Landroidx/media3/datasource/cache/CachedContentIndex;->applyContentMetadataMutations(Ljava/lang/String;Landroidx/media3/datasource/cache/ContentMetadataMutations;)V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
:try_start_1
|
|
iget-object p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 504
|
|
invoke-virtual {p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->store()V
|
|
:try_end_1
|
|
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_0
|
|
|
|
.line 508
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:catch_0
|
|
move-exception p1
|
|
|
|
.line 506
|
|
:try_start_2
|
|
new-instance p2, Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
invoke-direct {p2, p1}, Landroidx/media3/datasource/cache/Cache$CacheException;-><init>(Ljava/lang/Throwable;)V
|
|
|
|
throw p2
|
|
:try_end_2
|
|
.catchall {:try_start_2 .. :try_end_2} :catchall_0
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized checkInitialization()V
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->initializationException:Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 251
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
.line 249
|
|
:cond_0
|
|
:try_start_1
|
|
throw v0
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_0
|
|
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
monitor-exit p0
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public declared-synchronized commitFile(Ljava/io/File;J)V
|
|
.locals 9
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
const/4 v1, 0x1
|
|
|
|
const/4 v2, 0x0
|
|
|
|
xor-int/2addr v0, v1
|
|
|
|
.line 396
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 397
|
|
invoke-virtual {p1}, Ljava/io/File;->exists()Z
|
|
|
|
move-result v0
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
.line 398
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
const-wide/16 v3, 0x0
|
|
|
|
cmp-long v0, p2, v3
|
|
|
|
if-nez v0, :cond_1
|
|
|
|
.line 401
|
|
:try_start_1
|
|
invoke-virtual {p1}, Ljava/io/File;->delete()Z
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_0
|
|
|
|
.line 402
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:cond_1
|
|
:try_start_2
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 406
|
|
invoke-static {p1, p2, p3, v0}, Landroidx/media3/datasource/cache/SimpleCacheSpan;->createCacheEntry(Ljava/io/File;JLandroidx/media3/datasource/cache/CachedContentIndex;)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
move-result-object p2
|
|
|
|
invoke-static {p2}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object p2
|
|
|
|
check-cast p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
iget-object p3, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 407
|
|
iget-object v0, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {p3, v0}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object p3
|
|
|
|
invoke-static {p3}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object p3
|
|
|
|
check-cast p3, Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
.line 408
|
|
iget-wide v3, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->position:J
|
|
|
|
iget-wide v5, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->length:J
|
|
|
|
invoke-virtual {p3, v3, v4, v5, v6}, Landroidx/media3/datasource/cache/CachedContent;->isFullyLocked(JJ)Z
|
|
|
|
move-result v0
|
|
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 411
|
|
invoke-virtual {p3}, Landroidx/media3/datasource/cache/CachedContent;->getMetadata()Landroidx/media3/datasource/cache/DefaultContentMetadata;
|
|
|
|
move-result-object p3
|
|
|
|
invoke-static {p3}, Landroidx/media3/datasource/cache/ContentMetadata;->getContentLength(Landroidx/media3/datasource/cache/ContentMetadata;)J
|
|
|
|
move-result-wide v3
|
|
|
|
const-wide/16 v5, -0x1
|
|
|
|
cmp-long p3, v3, v5
|
|
|
|
if-eqz p3, :cond_3
|
|
|
|
.line 413
|
|
iget-wide v5, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->position:J
|
|
|
|
iget-wide v7, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->length:J
|
|
|
|
add-long/2addr v5, v7
|
|
|
|
cmp-long p3, v5, v3
|
|
|
|
if-gtz p3, :cond_2
|
|
|
|
goto :goto_0
|
|
|
|
:cond_2
|
|
move v1, v2
|
|
|
|
:goto_0
|
|
invoke-static {v1}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
:cond_3
|
|
iget-object p3, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
if-eqz p3, :cond_4
|
|
|
|
.line 417
|
|
invoke-virtual {p1}, Ljava/io/File;->getName()Ljava/lang/String;
|
|
|
|
move-result-object v1
|
|
:try_end_2
|
|
.catchall {:try_start_2 .. :try_end_2} :catchall_0
|
|
|
|
:try_start_3
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->fileIndex:Landroidx/media3/datasource/cache/CacheFileMetadataIndex;
|
|
|
|
.line 419
|
|
iget-wide v2, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->length:J
|
|
|
|
iget-wide v4, p2, Landroidx/media3/datasource/cache/SimpleCacheSpan;->lastTouchTimestamp:J
|
|
|
|
invoke-virtual/range {v0 .. v5}, Landroidx/media3/datasource/cache/CacheFileMetadataIndex;->set(Ljava/lang/String;JJ)V
|
|
:try_end_3
|
|
.catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_0
|
|
.catchall {:try_start_3 .. :try_end_3} :catchall_0
|
|
|
|
goto :goto_1
|
|
|
|
:catch_0
|
|
move-exception p1
|
|
|
|
.line 421
|
|
:try_start_4
|
|
new-instance p2, Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
invoke-direct {p2, p1}, Landroidx/media3/datasource/cache/Cache$CacheException;-><init>(Ljava/lang/Throwable;)V
|
|
|
|
throw p2
|
|
|
|
.line 424
|
|
:cond_4
|
|
:goto_1
|
|
invoke-direct {p0, p2}, Landroidx/media3/datasource/cache/SimpleCache;->addSpan(Landroidx/media3/datasource/cache/SimpleCacheSpan;)V
|
|
:try_end_4
|
|
.catchall {:try_start_4 .. :try_end_4} :catchall_0
|
|
|
|
:try_start_5
|
|
iget-object p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 426
|
|
invoke-virtual {p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->store()V
|
|
:try_end_5
|
|
.catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_1
|
|
.catchall {:try_start_5 .. :try_end_5} :catchall_0
|
|
|
|
.line 430
|
|
:try_start_6
|
|
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
|
|
:try_end_6
|
|
.catchall {:try_start_6 .. :try_end_6} :catchall_0
|
|
|
|
.line 431
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:catch_1
|
|
move-exception p1
|
|
|
|
.line 428
|
|
:try_start_7
|
|
new-instance p2, Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
|
|
invoke-direct {p2, p1}, Landroidx/media3/datasource/cache/Cache$CacheException;-><init>(Ljava/lang/Throwable;)V
|
|
|
|
throw p2
|
|
:try_end_7
|
|
.catchall {:try_start_7 .. :try_end_7} :catchall_0
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized getCacheSpace()J
|
|
.locals 2
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 320
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
iget-wide v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->totalSpace:J
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 321
|
|
monitor-exit p0
|
|
|
|
return-wide v0
|
|
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
monitor-exit p0
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public declared-synchronized getCachedBytes(Ljava/lang/String;JJ)J
|
|
.locals 15
|
|
|
|
monitor-enter p0
|
|
|
|
const-wide/16 v0, -0x1
|
|
|
|
cmp-long v0, p4, v0
|
|
|
|
const-wide v1, 0x7fffffffffffffffL
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
move-wide v3, v1
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
add-long v3, p2, p4
|
|
|
|
:goto_0
|
|
const-wide/16 v7, 0x0
|
|
|
|
cmp-long v0, v3, v7
|
|
|
|
if-gez v0, :cond_1
|
|
|
|
move-wide v9, v1
|
|
|
|
goto :goto_1
|
|
|
|
:cond_1
|
|
move-wide v9, v3
|
|
|
|
:goto_1
|
|
move-wide/from16 v11, p2
|
|
|
|
move-wide v13, v7
|
|
|
|
:goto_2
|
|
cmp-long v0, v11, v9
|
|
|
|
if-gez v0, :cond_3
|
|
|
|
sub-long v5, v9, v11
|
|
|
|
move-object v1, p0
|
|
|
|
move-object/from16 v2, p1
|
|
|
|
move-wide v3, v11
|
|
|
|
.line 484
|
|
:try_start_0
|
|
invoke-virtual/range {v1 .. v6}, Landroidx/media3/datasource/cache/SimpleCache;->getCachedLength(Ljava/lang/String;JJ)J
|
|
|
|
move-result-wide v0
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
cmp-long v2, v0, v7
|
|
|
|
if-lez v2, :cond_2
|
|
|
|
add-long/2addr v13, v0
|
|
|
|
goto :goto_3
|
|
|
|
:cond_2
|
|
neg-long v0, v0
|
|
|
|
:goto_3
|
|
add-long/2addr v11, v0
|
|
|
|
goto :goto_2
|
|
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
move-object v1, v0
|
|
|
|
monitor-exit p0
|
|
|
|
throw v1
|
|
|
|
.line 493
|
|
:cond_3
|
|
monitor-exit p0
|
|
|
|
return-wide v13
|
|
.end method
|
|
|
|
.method public declared-synchronized getCachedLength(Ljava/lang/String;JJ)J
|
|
.locals 2
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 465
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
const-wide/16 v0, -0x1
|
|
|
|
cmp-long v0, p4, v0
|
|
|
|
if-nez v0, :cond_0
|
|
|
|
const-wide p4, 0x7fffffffffffffffL
|
|
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 469
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object p1
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
.line 470
|
|
invoke-virtual {p1, p2, p3, p4, p5}, Landroidx/media3/datasource/cache/CachedContent;->getCachedBytesLength(JJ)J
|
|
|
|
move-result-wide p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_1
|
|
neg-long p1, p4
|
|
|
|
:goto_0
|
|
monitor-exit p0
|
|
|
|
return-wide p1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized getCachedSpans(Ljava/lang/String;)Ljava/util/NavigableSet;
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"(",
|
|
"Ljava/lang/String;",
|
|
")",
|
|
"Ljava/util/NavigableSet<",
|
|
"Landroidx/media3/datasource/cache/CacheSpan;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 305
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 306
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object p1
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
.line 307
|
|
invoke-virtual {p1}, Landroidx/media3/datasource/cache/CachedContent;->isEmpty()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 309
|
|
:cond_0
|
|
new-instance v0, Ljava/util/TreeSet;
|
|
|
|
invoke-virtual {p1}, Landroidx/media3/datasource/cache/CachedContent;->getSpans()Ljava/util/TreeSet;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-direct {v0, p1}, Ljava/util/TreeSet;-><init>(Ljava/util/Collection;)V
|
|
|
|
goto :goto_1
|
|
|
|
.line 308
|
|
:cond_1
|
|
:goto_0
|
|
new-instance v0, Ljava/util/TreeSet;
|
|
|
|
invoke-direct {v0}, Ljava/util/TreeSet;-><init>()V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 307
|
|
:goto_1
|
|
monitor-exit p0
|
|
|
|
return-object v0
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized getContentMetadata(Ljava/lang/String;)Landroidx/media3/datasource/cache/ContentMetadata;
|
|
.locals 1
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 512
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 513
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->getContentMetadata(Ljava/lang/String;)Landroidx/media3/datasource/cache/ContentMetadata;
|
|
|
|
move-result-object p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
monitor-exit p0
|
|
|
|
return-object p1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized getKeys()Ljava/util/Set;
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Signature;
|
|
value = {
|
|
"()",
|
|
"Ljava/util/Set<",
|
|
"Ljava/lang/String;",
|
|
">;"
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 314
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 315
|
|
new-instance v0, Ljava/util/HashSet;
|
|
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
invoke-virtual {v1}, Landroidx/media3/datasource/cache/CachedContentIndex;->getKeys()Ljava/util/Set;
|
|
|
|
move-result-object v1
|
|
|
|
invoke-direct {v0, v1}, Ljava/util/HashSet;-><init>(Ljava/util/Collection;)V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
monitor-exit p0
|
|
|
|
return-object v0
|
|
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
monitor-exit p0
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public declared-synchronized getUid()J
|
|
.locals 2
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-wide v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->uid:J
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 255
|
|
monitor-exit p0
|
|
|
|
return-wide v0
|
|
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
monitor-exit p0
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public declared-synchronized isCached(Ljava/lang/String;JJ)Z
|
|
.locals 3
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
const/4 v1, 0x1
|
|
|
|
const/4 v2, 0x0
|
|
|
|
xor-int/2addr v0, v1
|
|
|
|
.line 458
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 459
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object p1
|
|
|
|
if-eqz p1, :cond_0
|
|
|
|
.line 460
|
|
invoke-virtual {p1, p2, p3, p4, p5}, Landroidx/media3/datasource/cache/CachedContent;->getCachedBytesLength(JJ)J
|
|
|
|
move-result-wide p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
cmp-long p1, p1, p4
|
|
|
|
if-ltz p1, :cond_0
|
|
|
|
goto :goto_0
|
|
|
|
:cond_0
|
|
move v1, v2
|
|
|
|
:goto_0
|
|
monitor-exit p0
|
|
|
|
return v1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized release()V
|
|
.locals 4
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_1
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 261
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
:try_start_1
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 263
|
|
invoke-virtual {v0}, Ljava/util/HashMap;->clear()V
|
|
|
|
.line 264
|
|
invoke-direct {p0}, Landroidx/media3/datasource/cache/SimpleCache;->removeStaleSpans()V
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_1
|
|
|
|
const/4 v0, 0x1
|
|
|
|
:try_start_2
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 266
|
|
invoke-virtual {v1}, Landroidx/media3/datasource/cache/CachedContentIndex;->store()V
|
|
:try_end_2
|
|
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_0
|
|
.catchall {:try_start_2 .. :try_end_2} :catchall_0
|
|
|
|
:try_start_3
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 270
|
|
invoke-static {v1}, Landroidx/media3/datasource/cache/SimpleCache;->unlockFolder(Ljava/io/File;)V
|
|
|
|
:goto_0
|
|
iput-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
:try_end_3
|
|
.catchall {:try_start_3 .. :try_end_3} :catchall_1
|
|
|
|
goto :goto_1
|
|
|
|
:catchall_0
|
|
move-exception v1
|
|
|
|
goto :goto_2
|
|
|
|
:catch_0
|
|
move-exception v1
|
|
|
|
:try_start_4
|
|
const-string v2, "SimpleCache"
|
|
|
|
const-string v3, "Storing index file failed"
|
|
|
|
.line 268
|
|
invoke-static {v2, v3, v1}, Landroidx/media3/common/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
:try_end_4
|
|
.catchall {:try_start_4 .. :try_end_4} :catchall_0
|
|
|
|
:try_start_5
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 270
|
|
invoke-static {v1}, Landroidx/media3/datasource/cache/SimpleCache;->unlockFolder(Ljava/io/File;)V
|
|
:try_end_5
|
|
.catchall {:try_start_5 .. :try_end_5} :catchall_1
|
|
|
|
goto :goto_0
|
|
|
|
.line 273
|
|
:goto_1
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:goto_2
|
|
:try_start_6
|
|
iget-object v2, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 270
|
|
invoke-static {v2}, Landroidx/media3/datasource/cache/SimpleCache;->unlockFolder(Ljava/io/File;)V
|
|
|
|
iput-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
.line 272
|
|
throw v1
|
|
:try_end_6
|
|
.catchall {:try_start_6 .. :try_end_6} :catchall_1
|
|
|
|
:catchall_1
|
|
move-exception v0
|
|
|
|
monitor-exit p0
|
|
|
|
throw v0
|
|
.end method
|
|
|
|
.method public declared-synchronized releaseHoleSpan(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
.locals 3
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 435
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 436
|
|
iget-object v1, p1, Landroidx/media3/datasource/cache/CacheSpan;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {v0, v1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object v0
|
|
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
.line 437
|
|
iget-wide v1, p1, Landroidx/media3/datasource/cache/CacheSpan;->position:J
|
|
|
|
invoke-virtual {v0, v1, v2}, Landroidx/media3/datasource/cache/CachedContent;->unlockRange(J)V
|
|
|
|
iget-object p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 438
|
|
iget-object v0, v0, Landroidx/media3/datasource/cache/CachedContent;->key:Ljava/lang/String;
|
|
|
|
invoke-virtual {p1, v0}, Landroidx/media3/datasource/cache/CachedContentIndex;->maybeRemove(Ljava/lang/String;)V
|
|
|
|
.line 439
|
|
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 440
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized removeListener(Ljava/lang/String;Landroidx/media3/datasource/cache/Cache$Listener;)V
|
|
.locals 1
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 292
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:cond_0
|
|
:try_start_1
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 294
|
|
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Ljava/util/ArrayList;
|
|
|
|
if-eqz v0, :cond_1
|
|
|
|
.line 296
|
|
invoke-virtual {v0, p2}, Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
|
|
|
|
.line 297
|
|
invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z
|
|
|
|
move-result p2
|
|
|
|
if-eqz p2, :cond_1
|
|
|
|
iget-object p2, p0, Landroidx/media3/datasource/cache/SimpleCache;->listeners:Ljava/util/HashMap;
|
|
|
|
.line 298
|
|
invoke-virtual {p2, p1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_0
|
|
|
|
.line 301
|
|
:cond_1
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized removeResource(Ljava/lang/String;)V
|
|
.locals 1
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 444
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 445
|
|
invoke-virtual {p0, p1}, Landroidx/media3/datasource/cache/SimpleCache;->getCachedSpans(Ljava/lang/String;)Ljava/util/NavigableSet;
|
|
|
|
move-result-object p1
|
|
|
|
invoke-interface {p1}, Ljava/util/NavigableSet;->iterator()Ljava/util/Iterator;
|
|
|
|
move-result-object p1
|
|
|
|
:goto_0
|
|
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
|
|
|
|
move-result v0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
|
|
|
|
move-result-object v0
|
|
|
|
check-cast v0, Landroidx/media3/datasource/cache/CacheSpan;
|
|
|
|
.line 446
|
|
invoke-direct {p0, v0}, Landroidx/media3/datasource/cache/SimpleCache;->removeSpanInternal(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
goto :goto_0
|
|
|
|
.line 448
|
|
:cond_0
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized removeSpan(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
.locals 1
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 452
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 453
|
|
invoke-direct {p0, p1}, Landroidx/media3/datasource/cache/SimpleCache;->removeSpanInternal(Landroidx/media3/datasource/cache/CacheSpan;)V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 454
|
|
monitor-exit p0
|
|
|
|
return-void
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized startFile(Ljava/lang/String;JJ)Ljava/io/File;
|
|
.locals 8
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 371
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 372
|
|
invoke-virtual {p0}, Landroidx/media3/datasource/cache/SimpleCache;->checkInitialization()V
|
|
|
|
iget-object v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 374
|
|
invoke-virtual {v0, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->get(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object v0
|
|
|
|
.line 375
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 376
|
|
invoke-virtual {v0, p2, p3, p4, p5}, Landroidx/media3/datasource/cache/CachedContent;->isFullyLocked(JJ)Z
|
|
|
|
move-result v1
|
|
|
|
invoke-static {v1}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 377
|
|
invoke-virtual {v1}, Ljava/io/File;->exists()Z
|
|
|
|
move-result v1
|
|
|
|
if-nez v1, :cond_0
|
|
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
.line 380
|
|
invoke-static {v1}, Landroidx/media3/datasource/cache/SimpleCache;->createCacheDirectories(Ljava/io/File;)V
|
|
|
|
.line 381
|
|
invoke-direct {p0}, Landroidx/media3/datasource/cache/SimpleCache;->removeStaleSpans()V
|
|
|
|
:cond_0
|
|
iget-object v1, p0, Landroidx/media3/datasource/cache/SimpleCache;->evictor:Landroidx/media3/datasource/cache/CacheEvictor;
|
|
|
|
move-object v2, p0
|
|
|
|
move-object v3, p1
|
|
|
|
move-wide v4, p2
|
|
|
|
move-wide v6, p4
|
|
|
|
.line 383
|
|
invoke-interface/range {v1 .. v7}, Landroidx/media3/datasource/cache/CacheEvictor;->onStartFile(Landroidx/media3/datasource/cache/Cache;Ljava/lang/String;JJ)V
|
|
|
|
.line 385
|
|
new-instance v2, Ljava/io/File;
|
|
|
|
iget-object p1, p0, Landroidx/media3/datasource/cache/SimpleCache;->cacheDir:Ljava/io/File;
|
|
|
|
iget-object p4, p0, Landroidx/media3/datasource/cache/SimpleCache;->random:Ljava/util/Random;
|
|
|
|
const/16 p5, 0xa
|
|
|
|
invoke-virtual {p4, p5}, Ljava/util/Random;->nextInt(I)I
|
|
|
|
move-result p4
|
|
|
|
invoke-static {p4}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
|
|
|
|
move-result-object p4
|
|
|
|
invoke-direct {v2, p1, p4}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
|
|
|
|
.line 386
|
|
invoke-virtual {v2}, Ljava/io/File;->exists()Z
|
|
|
|
move-result p1
|
|
|
|
if-nez p1, :cond_1
|
|
|
|
.line 387
|
|
invoke-static {v2}, Landroidx/media3/datasource/cache/SimpleCache;->createCacheDirectories(Ljava/io/File;)V
|
|
|
|
.line 389
|
|
:cond_1
|
|
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
|
|
|
|
move-result-wide v6
|
|
|
|
.line 390
|
|
iget v3, v0, Landroidx/media3/datasource/cache/CachedContent;->id:I
|
|
|
|
move-wide v4, p2
|
|
|
|
invoke-static/range {v2 .. v7}, Landroidx/media3/datasource/cache/SimpleCacheSpan;->getCacheFile(Ljava/io/File;IJJ)Ljava/io/File;
|
|
|
|
move-result-object p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
monitor-exit p0
|
|
|
|
return-object p1
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized startReadWrite(Ljava/lang/String;JJ)Landroidx/media3/datasource/cache/CacheSpan;
|
|
.locals 1
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Ljava/lang/InterruptedException;,
|
|
Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 327
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 328
|
|
invoke-virtual {p0}, Landroidx/media3/datasource/cache/SimpleCache;->checkInitialization()V
|
|
|
|
.line 331
|
|
:goto_0
|
|
invoke-virtual/range {p0 .. p5}, Landroidx/media3/datasource/cache/SimpleCache;->startReadWriteNonBlocking(Ljava/lang/String;JJ)Landroidx/media3/datasource/cache/CacheSpan;
|
|
|
|
move-result-object v0
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
if-eqz v0, :cond_0
|
|
|
|
.line 333
|
|
monitor-exit p0
|
|
|
|
return-object v0
|
|
|
|
.line 340
|
|
:cond_0
|
|
:try_start_1
|
|
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_0
|
|
|
|
goto :goto_0
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|
|
|
|
.method public declared-synchronized startReadWriteNonBlocking(Ljava/lang/String;JJ)Landroidx/media3/datasource/cache/CacheSpan;
|
|
.locals 2
|
|
.annotation system Ldalvik/annotation/Throws;
|
|
value = {
|
|
Landroidx/media3/datasource/cache/Cache$CacheException;
|
|
}
|
|
.end annotation
|
|
|
|
monitor-enter p0
|
|
|
|
:try_start_0
|
|
iget-boolean v0, p0, Landroidx/media3/datasource/cache/SimpleCache;->released:Z
|
|
|
|
xor-int/lit8 v0, v0, 0x1
|
|
|
|
.line 349
|
|
invoke-static {v0}, Landroidx/media3/common/util/Assertions;->checkState(Z)V
|
|
|
|
.line 350
|
|
invoke-virtual {p0}, Landroidx/media3/datasource/cache/SimpleCache;->checkInitialization()V
|
|
|
|
.line 352
|
|
invoke-direct/range {p0 .. p5}, Landroidx/media3/datasource/cache/SimpleCache;->getSpan(Ljava/lang/String;JJ)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
move-result-object p4
|
|
|
|
.line 354
|
|
iget-boolean p5, p4, Landroidx/media3/datasource/cache/SimpleCacheSpan;->isCached:Z
|
|
|
|
if-eqz p5, :cond_0
|
|
|
|
.line 356
|
|
invoke-direct {p0, p1, p4}, Landroidx/media3/datasource/cache/SimpleCache;->touchSpan(Ljava/lang/String;Landroidx/media3/datasource/cache/SimpleCacheSpan;)Landroidx/media3/datasource/cache/SimpleCacheSpan;
|
|
|
|
move-result-object p1
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
monitor-exit p0
|
|
|
|
return-object p1
|
|
|
|
:cond_0
|
|
:try_start_1
|
|
iget-object p5, p0, Landroidx/media3/datasource/cache/SimpleCache;->contentIndex:Landroidx/media3/datasource/cache/CachedContentIndex;
|
|
|
|
.line 359
|
|
invoke-virtual {p5, p1}, Landroidx/media3/datasource/cache/CachedContentIndex;->getOrAdd(Ljava/lang/String;)Landroidx/media3/datasource/cache/CachedContent;
|
|
|
|
move-result-object p1
|
|
|
|
.line 360
|
|
iget-wide v0, p4, Landroidx/media3/datasource/cache/SimpleCacheSpan;->length:J
|
|
|
|
invoke-virtual {p1, p2, p3, v0, v1}, Landroidx/media3/datasource/cache/CachedContent;->lockRange(JJ)Z
|
|
|
|
move-result p1
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_0
|
|
|
|
if-eqz p1, :cond_1
|
|
|
|
.line 362
|
|
monitor-exit p0
|
|
|
|
return-object p4
|
|
|
|
.line 366
|
|
:cond_1
|
|
monitor-exit p0
|
|
|
|
const/4 p0, 0x0
|
|
|
|
return-object p0
|
|
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
monitor-exit p0
|
|
|
|
throw p1
|
|
.end method
|