ApkAssets.smali
.class public Laegon/chrome/base/ApkAssets;
.super Ljava/lang/Object;
# annotations
.annotation runtime Laegon/chrome/base/annotations/JNINamespace;
value = "base::android"
.end annotation
# static fields
.field private static final LOGTAG:Ljava/lang/String; = "ApkAssets"
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static open(Ljava/lang/String;)[J
.registers 7
.annotation build Laegon/chrome/base/annotations/CalledByNative;
.end annotation
const/4 v1, 0x0
:try_start_1
invoke-static {}, Laegon/chrome/base/ContextUtils;->getApplicationContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v0
invoke-virtual {v0, p0}, Landroid/content/res/AssetManager;->openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
move-result-object v1
const/4 v0, 0x3
new-array v0, v0, [J
const/4 v2, 0x0
invoke-virtual {v1}, Landroid/content/res/AssetFileDescriptor;->getParcelFileDescriptor()Landroid/os/ParcelFileDescriptor;
move-result-object v3
invoke-virtual {v3}, Landroid/os/ParcelFileDescriptor;->detachFd()I
move-result v3
int-to-long v4, v3
aput-wide v4, v0, v2
const/4 v2, 0x1
invoke-virtual {v1}, Landroid/content/res/AssetFileDescriptor;->getStartOffset()J
move-result-wide v4
aput-wide v4, v0, v2
const/4 v2, 0x2
invoke-virtual {v1}, Landroid/content/res/AssetFileDescriptor;->getLength()J
move-result-wide v4
aput-wide v4, v0, v2
:try_end_2a
.catch Ljava/io/IOException; {:try_start_1 .. :try_end_2a} :catch_39
.catchall {:try_start_1 .. :try_end_2a} :catchall_87
if-eqz v1, :cond_2f
:try_start_2c
invoke-virtual {v1}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_2f
.catch Ljava/io/IOException; {:try_start_2c .. :try_end_2f} :catch_30
:cond_2f
:goto_2f
return-object v0
:catch_30
move-exception v1
const-string v2, "ApkAssets"
const-string v3, "Unable to close AssetFileDescriptor"
invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_2f
:catch_39
move-exception v0
:try_start_3a
invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v2
const-string v3, ""
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_72
invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-virtual {v2, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_72
const-string v2, "ApkAssets"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Error while loading asset "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, ": "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0}, 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-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:cond_72
const/4 v0, 0x3
new-array v0, v0, [J
:try_end_75
.catchall {:try_start_3a .. :try_end_75} :catchall_87
fill-array-data v0, :array_98
if-eqz v1, :cond_2f
:try_start_7a
invoke-virtual {v1}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_7d
.catch Ljava/io/IOException; {:try_start_7a .. :try_end_7d} :catch_7e
goto :goto_2f
:catch_7e
move-exception v1
const-string v2, "ApkAssets"
const-string v3, "Unable to close AssetFileDescriptor"
invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_2f
:catchall_87
move-exception v0
if-eqz v1, :cond_8d
:try_start_8a
invoke-virtual {v1}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_8d
.catch Ljava/io/IOException; {:try_start_8a .. :try_end_8d} :catch_8e
:cond_8d
:goto_8d
throw v0
:catch_8e
move-exception v1
const-string v2, "ApkAssets"
const-string v3, "Unable to close AssetFileDescriptor"
invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_8d
nop
:array_98
.array-data 8
-0x1
-0x1
-0x1
.end array-data
.end method