AnoApplication.smali

.class public Lcom/ano/gshell/AnoApplication;
.super Landroid/app/Application;
.source "AnoApplication.java"


# static fields
.field static final IS_SELF_LOAD_DEX:Z

.field public static memoryLoaders:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList",
            "<",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 18
    const-string v0, "anort"

    invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V

    .line 29
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    sput-object v0, Lcom/ano/gshell/AnoApplication;->memoryLoaders:Ljava/util/ArrayList;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    .prologue
    .line 14
    invoke-direct {p0}, Landroid/app/Application;-><init>()V

    return-void
.end method

.method public static native handleLoad(Ljava/lang/Object;I)Ljava/lang/Object;
.end method

.method public static native handleLoad([BII)Ljava/lang/Object;
.end method

.method public static native handleLoadV22([BII)J
.end method

.method public static native ioctl(ILjava/lang/String;)I
.end method

.method public static native ioctl(Ljava/lang/String;)V
.end method


# virtual methods
.method protected attachBaseContext(Landroid/content/Context;)V
    .registers 11

    .prologue
    const/4 v5, 0x0

    .line 49
    invoke-super {p0, p1}, Landroid/app/Application;->attachBaseContext(Landroid/content/Context;)V

    .line 52
    :try_start_4
    invoke-virtual {p0}, Lcom/ano/gshell/AnoApplication;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;

    move-result-object v0

    .line 53
    iget-object v1, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;

    .line 54
    iget-object v3, v0, Landroid/content/pm/ApplicationInfo;->nativeLibraryDir:Ljava/lang/String;

    .line 55
    iget-object v4, v0, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String;

    .line 56
    invoke-virtual {p0}, Lcom/ano/gshell/AnoApplication;->getFilesDir()Ljava/io/File;

    move-result-object v2

    .line 58
    invoke-virtual {p0}, Lcom/ano/gshell/AnoApplication;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v6

    .line 59
    const/4 v7, 0x0

    invoke-virtual {v6, v1, v7}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;

    move-result-object v6

    .line 60
    iget-object v6, v6, Landroid/content/pm/PackageInfo;->versionName:Ljava/lang/String;

    .line 62
    sget v7, Landroid/os/Build$VERSION;->SDK_INT:I
    :try_end_1f
    .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_1f} :catch_4d

    const/16 v8, 0x15

    if-lt v7, v8, :cond_3a

    .line 64
    :try_start_23
    invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v7

    const-string v8, "splitSourceDirs"

    invoke-virtual {v7, v8}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;

    move-result-object v7

    .line 65
    const/4 v8, 0x1

    invoke-virtual {v7, v8}, Ljava/lang/reflect/Field;->setAccessible(Z)V

    .line 66
    invoke-virtual {v7, v0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, [Ljava/lang/String;

    check-cast v0, [Ljava/lang/String;
    :try_end_39
    .catch Ljava/lang/Exception; {:try_start_23 .. :try_end_39} :catch_4f

    move-object v5, v0

    .line 79
    :cond_3a
    :goto_3a
    :try_start_3a
    invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object v2

    move-object v0, p0

    invoke-virtual/range {v0 .. v6}, Lcom/ano/gshell/AnoApplication;->initialize(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)I

    move-result v0

    .line 80
    if-eqz v0, :cond_4e

    .line 81
    new-instance v0, Ljava/lang/Exception;

    const-string v1, "initialize failed."

    invoke-direct {v0, v1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V

    throw v0
    :try_end_4d
    .catch Ljava/lang/Exception; {:try_start_3a .. :try_end_4d} :catch_4d

    .line 84
    :catch_4d
    move-exception v0

    .line 87
    :cond_4e
    return-void

    .line 67
    :catch_4f
    move-exception v0

    goto :goto_3a
.end method

.method public final native initialize(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)I
.end method

.method public onCreate()V
    .registers 1

    .prologue
    .line 32
    invoke-super {p0}, Landroid/app/Application;->onCreate()V

    .line 34
    return-void
.end method