gn.smali
.class public Lcom/baidu/techain/af/gn;
.super Ljava/lang/Object;
# static fields
.field private static b:Lcom/baidu/techain/af/gn;
# instance fields
.field public a:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
.field private c:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
# direct methods
.method private constructor <init>()V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Lcom/baidu/techain/af/gn;->a:Ljava/util/Map;
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Lcom/baidu/techain/af/gn;->c:Ljava/util/Map;
invoke-direct {p0}, Lcom/baidu/techain/af/gn;->b()V
return-void
.end method
.method public static declared-synchronized a()Lcom/baidu/techain/af/gn;
.registers 2
const-class v1, Lcom/baidu/techain/af/gn;
monitor-enter v1
:try_start_3
sget-object v0, Lcom/baidu/techain/af/gn;->b:Lcom/baidu/techain/af/gn;
if-nez v0, :cond_e
new-instance v0, Lcom/baidu/techain/af/gn;
invoke-direct {v0}, Lcom/baidu/techain/af/gn;-><init>()V
sput-object v0, Lcom/baidu/techain/af/gn;->b:Lcom/baidu/techain/af/gn;
:cond_e
sget-object v0, Lcom/baidu/techain/af/gn;->b:Lcom/baidu/techain/af/gn;
:try_end_10
.catchall {:try_start_3 .. :try_end_10} :catchall_12
monitor-exit v1
return-object v0
:catchall_12
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 5
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "<"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "/>"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-eqz p0, :cond_25
const-string v1, "<"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "/>"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:cond_25
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private b()V
.registers 12
.prologue
const/4 v10, 0x2
const/4 v9, 0x1
const/4 v1, 0x0
.line 1000
const/4 v0, 0x2
:try_start_4
new-array v2, v0, [Ljava/lang/ClassLoader;
const/4 v0, 0x0
const-class v3, Lcom/baidu/techain/af/gn;
invoke-virtual {v3}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v3
aput-object v3, v2, v0
const/4 v0, 0x1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;
move-result-object v3
aput-object v3, v2, v0
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
move v0, v1
:goto_20
if-ge v0, v10, :cond_2c
aget-object v4, v2, v0
if-eqz v4, :cond_29
invoke-interface {v3, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:cond_29
add-int/lit8 v0, v0, 0x1
goto :goto_20
:cond_2c
invoke-interface {v3}, Ljava/util/List;->size()I
move-result v0
new-array v0, v0, [Ljava/lang/ClassLoader;
invoke-interface {v3, v0}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/ClassLoader;
.line 0
array-length v4, v0
move v3, v1
:goto_3a
if-ge v3, v4, :cond_e2
aget-object v1, v0, v3
const-string v2, "META-INF/smack.providers"
invoke-virtual {v1, v2}, Ljava/lang/ClassLoader;->getResources(Ljava/lang/String;)Ljava/util/Enumeration;
move-result-object v5
:goto_44
invoke-interface {v5}, Ljava/util/Enumeration;->hasMoreElements()Z
move-result v1
if-eqz v1, :cond_143
invoke-interface {v5}, Ljava/util/Enumeration;->nextElement()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/net/URL;
:try_end_50
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_50} :catch_de
const/4 v2, 0x0
:try_start_51
invoke-virtual {v1}, Ljava/net/URL;->openStream()Ljava/io/InputStream;
:try_end_54
.catchall {:try_start_51 .. :try_end_54} :catchall_14a
move-result-object v2
:try_start_55
invoke-static {}, Lorg/xmlpull/v1/XmlPullParserFactory;->newInstance()Lorg/xmlpull/v1/XmlPullParserFactory;
move-result-object v1
invoke-virtual {v1}, Lorg/xmlpull/v1/XmlPullParserFactory;->newPullParser()Lorg/xmlpull/v1/XmlPullParser;
move-result-object v6
const-string v1, "http://xmlpull.org/v1/doc/features.html#process-namespaces"
const/4 v7, 0x1
invoke-interface {v6, v1, v7}, Lorg/xmlpull/v1/XmlPullParser;->setFeature(Ljava/lang/String;Z)V
const-string v1, "UTF-8"
invoke-interface {v6, v2, v1}, Lorg/xmlpull/v1/XmlPullParser;->setInput(Ljava/io/InputStream;Ljava/lang/String;)V
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->getEventType()I
move-result v1
:cond_6c
if-ne v1, v10, :cond_b9
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v1
const-string v7, "iqProvider"
invoke-virtual {v1, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_e3
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->nextText()Ljava/lang/String;
move-result-object v1
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->nextText()Ljava/lang/String;
move-result-object v7
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->nextText()Ljava/lang/String;
move-result-object v8
invoke-static {v1, v7}, Lcom/baidu/techain/af/gn;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
iget-object v7, p0, Lcom/baidu/techain/af/gn;->c:Ljava/util/Map;
invoke-interface {v7, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
:try_end_a1
.catchall {:try_start_55 .. :try_end_a1} :catchall_d8
move-result v7
if-nez v7, :cond_b9
:try_start_a4
invoke-static {v8}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v7
const-class v8, Lcom/baidu/techain/af/gl;
invoke-virtual {v8, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v8
if-eqz v8, :cond_c5
iget-object v8, p0, Lcom/baidu/techain/af/gn;->c:Ljava/util/Map;
invoke-virtual {v7}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v7
invoke-interface {v8, v1, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_b9
.catch Ljava/lang/ClassNotFoundException; {:try_start_a4 .. :try_end_b9} :catch_d3
.catchall {:try_start_a4 .. :try_end_b9} :catchall_d8
:cond_b9
:goto_b9
:try_start_b9
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
:try_end_bc
.catchall {:try_start_b9 .. :try_end_bc} :catchall_d8
move-result v1
if-ne v1, v9, :cond_6c
:try_start_bf
invoke-virtual {v2}, Ljava/io/InputStream;->close()V
:try_end_c2
.catch Ljava/lang/Exception; {:try_start_bf .. :try_end_c2} :catch_c3
goto :goto_44
:catch_c3
move-exception v1
goto :goto_44
:cond_c5
:try_start_c5
const-class v8, Lcom/baidu/techain/af/ge;
invoke-virtual {v8, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v8
if-eqz v8, :cond_b9
iget-object v8, p0, Lcom/baidu/techain/af/gn;->c:Ljava/util/Map;
invoke-interface {v8, v1, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_d2
.catch Ljava/lang/ClassNotFoundException; {:try_start_c5 .. :try_end_d2} :catch_d3
.catchall {:try_start_c5 .. :try_end_d2} :catchall_d8
goto :goto_b9
:catch_d3
move-exception v1
:try_start_d4
invoke-virtual {v1}, Ljava/lang/ClassNotFoundException;->printStackTrace()V
:try_end_d7
.catchall {:try_start_d4 .. :try_end_d7} :catchall_d8
goto :goto_b9
:catchall_d8
move-exception v0
move-object v1, v2
:goto_da
:try_start_da
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_dd
.catch Ljava/lang/Exception; {:try_start_da .. :try_end_dd} :catch_148
:goto_dd
:try_start_dd
throw v0
:try_end_de
.catch Ljava/lang/Exception; {:try_start_dd .. :try_end_de} :catch_de
:catch_de
move-exception v0
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:cond_e2
return-void
:cond_e3
:try_start_e3
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v1
const-string v7, "extensionProvider"
invoke-virtual {v1, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_b9
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->nextText()Ljava/lang/String;
move-result-object v1
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->nextText()Ljava/lang/String;
move-result-object v7
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->next()I
invoke-interface {v6}, Lorg/xmlpull/v1/XmlPullParser;->nextText()Ljava/lang/String;
move-result-object v8
invoke-static {v1, v7}, Lcom/baidu/techain/af/gn;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
iget-object v7, p0, Lcom/baidu/techain/af/gn;->a:Ljava/util/Map;
invoke-interface {v7, v1}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
:try_end_116
.catchall {:try_start_e3 .. :try_end_116} :catchall_d8
move-result v7
if-nez v7, :cond_b9
:try_start_119
invoke-static {v8}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v7
const-class v8, Lcom/baidu/techain/af/gm;
invoke-virtual {v8, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v8
if-eqz v8, :cond_134
iget-object v8, p0, Lcom/baidu/techain/af/gn;->a:Ljava/util/Map;
invoke-virtual {v7}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v7
invoke-interface {v8, v1, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_12e
.catch Ljava/lang/ClassNotFoundException; {:try_start_119 .. :try_end_12e} :catch_12f
.catchall {:try_start_119 .. :try_end_12e} :catchall_d8
goto :goto_b9
:catch_12f
move-exception v1
:try_start_130
invoke-virtual {v1}, Ljava/lang/ClassNotFoundException;->printStackTrace()V
:try_end_133
.catchall {:try_start_130 .. :try_end_133} :catchall_d8
goto :goto_b9
:cond_134
:try_start_134
const-class v8, Lcom/baidu/techain/af/gh;
invoke-virtual {v8, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v8
if-eqz v8, :cond_b9
iget-object v8, p0, Lcom/baidu/techain/af/gn;->a:Ljava/util/Map;
invoke-interface {v8, v1, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_141
.catch Ljava/lang/ClassNotFoundException; {:try_start_134 .. :try_end_141} :catch_12f
.catchall {:try_start_134 .. :try_end_141} :catchall_d8
goto/16 :goto_b9
:cond_143
add-int/lit8 v1, v3, 0x1
move v3, v1
goto/16 :goto_3a
:catch_148
move-exception v1
goto :goto_dd
:catchall_14a
move-exception v0
move-object v1, v2
goto :goto_da
.end method