BundleManager.smali
.class public Lorg/acdd/framework/BundleManager;
.super Ljava/lang/Object;
.source "BundleManager.java"
# static fields
.field private static bundleDexPaths:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static bundles:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Lorg/osgi/framework/Bundle;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 22
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
sput-object v0, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
.line 23
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
sput-object v0, Lorg/acdd/framework/BundleManager;->bundleDexPaths:Ljava/util/Map;
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 21
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static declared-synchronized addLoadedDexPath(Ljava/lang/String;)V
.registers 4
.prologue
.line 55
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
:try_start_3
invoke-static {p0}, Lorg/acdd/util/ACDDUtils;->getPackageInfo(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 56
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_12
.line 57
sget-object v2, Lorg/acdd/framework/BundleManager;->bundleDexPaths:Ljava/util/Map;
invoke-interface {v2, v0, p0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_14
.line 59
:cond_12
monitor-exit v1
return-void
.line 55
:catchall_14
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
.registers 3
.prologue
.line 88
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
if-nez p0, :cond_8
.line 89
const/4 v0, 0x0
.line 91
:goto_6
monitor-exit v1
return-object v0
:cond_8
:try_start_8
sget-object v0, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lorg/osgi/framework/Bundle;
:try_end_10
.catchall {:try_start_8 .. :try_end_10} :catchall_11
goto :goto_6
.line 88
:catchall_11
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized getBundleCount()I
.registers 2
.prologue
.line 66
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
:try_start_3
sget-object v0, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->size()I
:try_end_8
.catchall {:try_start_3 .. :try_end_8} :catchall_b
move-result v0
monitor-exit v1
return v0
:catchall_b
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized getBundles()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Lorg/osgi/framework/Bundle;",
">;"
}
.end annotation
.prologue
.line 84
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
:try_start_3
new-instance v0, Ljava/util/ArrayList;
sget-object v2, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
invoke-interface {v2}, Ljava/util/Map;->values()Ljava/util/Collection;
move-result-object v2
invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
:try_end_e
.catchall {:try_start_3 .. :try_end_e} :catchall_10
monitor-exit v1
return-object v0
:catchall_10
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized getLoadedDexPath(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.prologue
.line 62
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
:try_start_3
sget-object v0, Lorg/acdd/framework/BundleManager;->bundleDexPaths:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
:try_end_b
.catchall {:try_start_3 .. :try_end_b} :catchall_d
monitor-exit v1
return-object v0
:catchall_d
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static installBundle(Ljava/io/File;Ljava/lang/String;Ljava/io/InputStream;Z)Lorg/osgi/framework/Bundle;
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 44
invoke-static {p1}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 45
if-eqz v0, :cond_27
.line 46
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] NewInstalled Plugin["
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "] success by cache!!!"
invoke-virtual {v2, v3}, 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-interface {v1, v2}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
.line 51
:goto_26
return-object v0
.line 49
:cond_27
new-instance v0, Lorg/acdd/framework/BundleImpl;
invoke-direct {v0, p0, p1, p2, p3}, Lorg/acdd/framework/BundleImpl;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/io/InputStream;Z)V
.line 50
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] NewInstall Plugin["
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "] success!!!"
invoke-virtual {v2, v3}, 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-interface {v1, v2}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
goto :goto_26
.end method
.method public static loadBundle(Ljava/io/File;Ljava/lang/String;)Lorg/osgi/framework/Bundle;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
const/4 v1, 0x0
.line 32
invoke-static {p1}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 33
if-eqz v0, :cond_28
.line 34
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] Installed => Load Plugin["
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "] success by cache!!!"
invoke-virtual {v2, v3}, 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-interface {v1, v2}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
.line 39
:goto_27
return-object v0
.line 37
:cond_28
new-instance v0, Lorg/acdd/framework/BundleImpl;
invoke-direct {v0, p0, p1, v1, v1}, Lorg/acdd/framework/BundleImpl;-><init>(Ljava/io/File;Ljava/lang/String;IZ)V
.line 38
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] Installed => Load Plugin["
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "] success!!!"
invoke-virtual {v2, v3}, 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-interface {v1, v2}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
goto :goto_27
.end method
.method public static loadBundle(Ljava/io/File;Ljava/lang/String;IZ)Lorg/osgi/framework/Bundle;
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 26
new-instance v0, Lorg/acdd/framework/BundleImpl;
invoke-direct {v0, p0, p1, p2, p3}, Lorg/acdd/framework/BundleImpl;-><init>(Ljava/io/File;Ljava/lang/String;IZ)V
.line 27
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "[PluginInstall] NewInstall => Load Plugin["
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "] success!!!"
invoke-virtual {v2, v3}, 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-interface {v1, v2}, Lorg/acdd/log/Logger;->info(Ljava/lang/String;)V
.line 28
return-object v0
.end method
.method public static declared-synchronized putBundle(Ljava/lang/String;Lorg/osgi/framework/Bundle;)V
.registers 4
.prologue
.line 74
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
:try_start_3
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
:try_end_6
.catchall {:try_start_3 .. :try_end_6} :catchall_1b
move-result v0
if-nez v0, :cond_b
if-nez p1, :cond_d
.line 81
:cond_b
:goto_b
monitor-exit v1
return-void
.line 77
:cond_d
:try_start_d
sget-object v0, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_b
.line 78
sget-object v0, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
invoke-interface {v0, p0, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_1a
.catchall {:try_start_d .. :try_end_1a} :catchall_1b
goto :goto_b
.line 74
:catchall_1b
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized removeAllBundle()V
.registers 2
.prologue
.line 70
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
:try_start_3
sget-object v0, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->clear()V
:try_end_8
.catchall {:try_start_3 .. :try_end_8} :catchall_a
.line 71
monitor-exit v1
return-void
.line 70
:catchall_a
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static declared-synchronized removeBundle(Ljava/lang/String;)V
.registers 3
.prologue
.line 95
const-class v1, Lorg/acdd/framework/BundleManager;
monitor-enter v1
:try_start_3
sget-object v0, Lorg/acdd/framework/BundleManager;->bundles:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
:try_end_8
.catchall {:try_start_3 .. :try_end_8} :catchall_a
.line 96
monitor-exit v1
return-void
.line 95
:catchall_a
move-exception v0
monitor-exit v1
throw v0
.end method