2026-07-06 19:54:44 +08:00

338 lines
7.2 KiB
Smali

.class public Lcom/danikula/videocache/ProxyCacheUtils;
.super Ljava/lang/Object;
.source "ProxyCacheUtils.java"
# static fields
.field static final DEFAULT_BUFFER_SIZE:I = 0x2000
.field static final MAX_ARRAY_PREVIEW:I = 0x10
# direct methods
.method public constructor <init>()V
.locals 0
.line 23
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static assertBuffer([BJI)V
.locals 2
const-string v0, "Buffer must be not null!"
.line 35
invoke-static {p0, v0}, Lcom/danikula/videocache/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
const-wide/16 v0, 0x0
cmp-long p1, p1, v0
const/4 p2, 0x1
const/4 v0, 0x0
if-ltz p1, :cond_0
move p1, p2
goto :goto_0
:cond_0
move p1, v0
:goto_0
const-string v1, "Data offset must be positive!"
.line 36
invoke-static {p1, v1}, Lcom/danikula/videocache/Preconditions;->checkArgument(ZLjava/lang/String;)V
if-ltz p3, :cond_1
.line 37
array-length p0, p0
if-gt p3, p0, :cond_1
goto :goto_1
:cond_1
move p2, v0
:goto_1
const-string p0, "Length must be in range [0..buffer.length]"
invoke-static {p2, p0}, Lcom/danikula/videocache/Preconditions;->checkArgument(ZLjava/lang/String;)V
return-void
.end method
.method private static bytesToHexString([B)Ljava/lang/String;
.locals 6
.line 87
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
.line 88
array-length v1, p0
const/4 v2, 0x0
move v3, v2
:goto_0
if-ge v3, v1, :cond_0
aget-byte v4, p0, v3
const/4 v5, 0x1
new-array v5, v5, [Ljava/lang/Object;
.line 89
invoke-static {v4}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v4
aput-object v4, v5, v2
const-string v4, "%02x"
invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v3, v3, 0x1
goto :goto_0
.line 91
:cond_0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static close(Ljava/io/Closeable;)V
.locals 0
if-eqz p0, :cond_0
.line 69
:try_start_0
invoke-interface {p0}, Ljava/io/Closeable;->close()V
:try_end_0
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
:catch_0
const-string p0, "Error closing resource"
.line 71
invoke-static {p0}, Lcom/danikula/videocache/Logger;->error(Ljava/lang/String;)V
:cond_0
:goto_0
return-void
.end method
.method public static computeMD5(Ljava/lang/String;)Ljava/lang/String;
.locals 1
:try_start_0
const-string v0, "MD5"
.line 78
invoke-static {v0}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
move-result-object v0
.line 79
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {v0, p0}, Ljava/security/MessageDigest;->digest([B)[B
move-result-object p0
.line 80
invoke-static {p0}, Lcom/danikula/videocache/ProxyCacheUtils;->bytesToHexString([B)Ljava/lang/String;
move-result-object p0
:try_end_0
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
move-exception p0
.line 82
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0, p0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/Throwable;)V
throw v0
.end method
.method static decode(Ljava/lang/String;)Ljava/lang/String;
.locals 2
:try_start_0
const-string v0, "utf-8"
.line 60
invoke-static {p0, v0}, Ljava/net/URLDecoder;->decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
:try_end_0
.catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
move-exception p0
.line 62
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Error decoding url"
invoke-direct {v0, v1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
.method static encode(Ljava/lang/String;)Ljava/lang/String;
.locals 2
:try_start_0
const-string v0, "utf-8"
.line 52
invoke-static {p0, v0}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
:try_end_0
.catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0
return-object p0
:catch_0
move-exception p0
.line 54
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Error encoding url"
invoke-direct {v0, v1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
.method static getSupposablyMime(Ljava/lang/String;)Ljava/lang/String;
.locals 2
.line 29
invoke-static {}, Landroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap;
move-result-object v0
.line 30
invoke-static {p0}, Landroid/webkit/MimeTypeMap;->getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
.line 31
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_0
const/4 p0, 0x0
goto :goto_0
:cond_0
invoke-virtual {v0, p0}, Landroid/webkit/MimeTypeMap;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
:goto_0
return-object p0
.end method
.method static preview([BI)Ljava/lang/String;
.locals 3
const/4 v0, 0x0
.line 41
invoke-static {p1, v0}, Ljava/lang/Math;->max(II)I
move-result v1
const/16 v2, 0x10
invoke-static {v2, v1}, Ljava/lang/Math;->min(II)I
move-result v1
.line 42
invoke-static {p0, v0, v1}, Ljava/util/Arrays;->copyOfRange([BII)[B
move-result-object p0
.line 43
invoke-static {p0}, Ljava/util/Arrays;->toString([B)Ljava/lang/String;
move-result-object p0
if-ge v1, p1, :cond_0
.line 45
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
const-string p1, ", ...]"
invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
:cond_0
return-object p0
.end method