Globals.smali
.class public Lorg/acdd/runtime/Globals;
.super Ljava/lang/Object;
.source "Globals.java"
# static fields
.field private static sApplication:Landroid/app/Application;
.field private static sClassLoader:Ljava/lang/ClassLoader;
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 35
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static declared-synchronized getApplication()Landroid/app/Application;
.registers 3
.prologue
.line 41
const-class v1, Lorg/acdd/runtime/Globals;
monitor-enter v1
:try_start_3
const-class v2, Lorg/acdd/runtime/Globals;
monitor-enter v2
:try_end_6
.catchall {:try_start_3 .. :try_end_6} :catchall_18
.line 42
:try_start_6
sget-object v0, Lorg/acdd/runtime/Globals;->sApplication:Landroid/app/Application;
if-nez v0, :cond_10
.line 43
invoke-static {}, Lorg/acdd/runtime/Globals;->getSystemApp()Landroid/app/Application;
move-result-object v0
sput-object v0, Lorg/acdd/runtime/Globals;->sApplication:Landroid/app/Application;
.line 45
:cond_10
monitor-exit v2
:try_end_11
.catchall {:try_start_6 .. :try_end_11} :catchall_15
.line 46
:try_start_11
sget-object v0, Lorg/acdd/runtime/Globals;->sApplication:Landroid/app/Application;
:try_end_13
.catchall {:try_start_11 .. :try_end_13} :catchall_18
monitor-exit v1
return-object v0
.line 45
:catchall_15
move-exception v0
:try_start_16
monitor-exit v2
:try_end_17
.catchall {:try_start_16 .. :try_end_17} :catchall_15
:try_start_17
throw v0
:try_end_18
.catchall {:try_start_17 .. :try_end_18} :catchall_18
.line 41
:catchall_18
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized getClassLoader()Ljava/lang/ClassLoader;
.registers 3
.prologue
.line 56
const-class v1, Lorg/acdd/runtime/Globals;
monitor-enter v1
:try_start_3
const-class v2, Lorg/acdd/runtime/Globals;
monitor-enter v2
:try_end_6
.catchall {:try_start_3 .. :try_end_6} :catchall_1b
.line 57
:try_start_6
sget-object v0, Lorg/acdd/runtime/Globals;->sClassLoader:Ljava/lang/ClassLoader;
if-nez v0, :cond_15
.line 58
invoke-static {}, Lorg/acdd/runtime/Globals;->getApplication()Landroid/app/Application;
move-result-object v0
invoke-virtual {v0}, Landroid/app/Application;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
.line 62
:goto_12
monitor-exit v2
:try_end_13
.catchall {:try_start_6 .. :try_end_13} :catchall_18
.line 63
monitor-exit v1
return-object v0
.line 60
:cond_15
:try_start_15
sget-object v0, Lorg/acdd/runtime/Globals;->sClassLoader:Ljava/lang/ClassLoader;
goto :goto_12
.line 62
:catchall_18
move-exception v0
monitor-exit v2
:try_end_1a
.catchall {:try_start_15 .. :try_end_1a} :catchall_18
:try_start_1a
throw v0
:try_end_1b
.catchall {:try_start_1a .. :try_end_1b} :catchall_1b
.line 56
:catchall_1b
move-exception v0
monitor-exit v1
throw v0
.end method
.method private static getSystemApp()Landroid/app/Application;
.registers 5
.prologue
const/4 v1, 0x0
.line 68
:try_start_1
const-string v0, "android.app.ActivityThread"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 69
const-string v2, "currentActivityThread"
const/4 v3, 0x0
new-array v3, v3, [Ljava/lang/Class;
invoke-virtual {v0, v2, v3}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
.line 70
const-string v3, "mInitialApplication"
invoke-virtual {v0, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 71
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 72
const/4 v3, 0x0
const/4 v4, 0x0
new-array v4, v4, [Ljava/lang/Object;
invoke-virtual {v2, v3, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/Application;
:try_end_28
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_28} :catch_29
.line 75
:goto_28
return-object v0
.line 73
:catch_29
move-exception v0
.line 74
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
move-object v0, v1
.line 75
goto :goto_28
.end method
.method public static getVersionCode()I
.registers 4
.prologue
const/4 v0, 0x0
.line 100
:try_start_1
invoke-static {}, Lorg/acdd/runtime/Globals;->getApplication()Landroid/app/Application;
move-result-object v1
invoke-virtual {v1}, Landroid/app/Application;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
invoke-static {}, Lorg/acdd/runtime/Globals;->getApplication()Landroid/app/Application;
move-result-object v2
invoke-virtual {v2}, Landroid/app/Application;->getPackageName()Ljava/lang/String;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v1, v2, v3}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v1
iget v0, v1, Landroid/content/pm/PackageInfo;->versionCode:I
:try_end_18
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_1 .. :try_end_18} :catch_19
.line 103
:goto_18
return v0
.line 101
:catch_19
move-exception v1
.line 102
invoke-virtual {v1}, Landroid/content/pm/PackageManager$NameNotFoundException;->printStackTrace()V
goto :goto_18
.end method
.method public static getVersionName()Ljava/lang/String;
.registers 3
.prologue
.line 81
:try_start_0
invoke-static {}, Lorg/acdd/runtime/Globals;->getApplication()Landroid/app/Application;
move-result-object v0
invoke-virtual {v0}, Landroid/app/Application;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
invoke-static {}, Lorg/acdd/runtime/Globals;->getApplication()Landroid/app/Application;
move-result-object v1
invoke-virtual {v1}, Landroid/app/Application;->getPackageName()Ljava/lang/String;
move-result-object v1
const/4 v2, 0x0
invoke-virtual {v0, v1, v2}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v0
iget-object v0, v0, Landroid/content/pm/PackageInfo;->versionName:Ljava/lang/String;
:try_end_17
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_0 .. :try_end_17} :catch_18
.line 84
:goto_17
return-object v0
.line 82
:catch_18
move-exception v0
.line 83
invoke-virtual {v0}, Landroid/content/pm/PackageManager$NameNotFoundException;->printStackTrace()V
.line 84
const-string v0, "null"
goto :goto_17
.end method
.method public static init(Landroid/app/Application;Ljava/lang/ClassLoader;)V
.registers 2
.prologue
.line 50
sput-object p0, Lorg/acdd/runtime/Globals;->sApplication:Landroid/app/Application;
.line 51
sput-object p1, Lorg/acdd/runtime/Globals;->sClassLoader:Ljava/lang/ClassLoader;
.line 52
return-void
.end method