IncrementComponentManager.smali
.class public final Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;
}
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "Tinker.IncrementCompMgr"
.field private static final TAG_ACTIVITY:I = 0x0
.field private static final TAG_PROVIDER:I = 0x2
.field private static final TAG_RECEIVER:I = 0x3
.field private static final TAG_SERVICE:I = 0x1
.field private static final sActivityInfoAttrTranslator:Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator",
"<",
"Landroid/content/pm/ActivityInfo;",
">;"
}
.end annotation
.end field
.field private static final sClassNameToActivityInfoMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Landroid/content/pm/ActivityInfo;",
">;"
}
.end annotation
.end field
.field private static final sClassNameToIntentFilterMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Landroid/content/IntentFilter;",
">;"
}
.end annotation
.end field
.field private static sContext:Landroid/content/Context;
.field private static volatile sInitialized:Z
.field private static sPackageName:Ljava/lang/String;
# direct methods
.method static constructor <clinit>()V
.registers 1
const/4 v0, 0x0
sput-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sContext:Landroid/content/Context;
sput-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sPackageName:Ljava/lang/String;
const/4 v0, 0x0
sput-boolean v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sInitialized:Z
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToActivityInfoMap:Ljava/util/Map;
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToIntentFilterMap:Ljava/util/Map;
new-instance v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$1;
invoke-direct {v0}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$1;-><init>()V
sput-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sActivityInfoAttrTranslator:Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;
return-void
.end method
.method private constructor <init>()V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/lang/UnsupportedOperationException;
invoke-direct {v0}, Ljava/lang/UnsupportedOperationException;-><init>()V
throw v0
.end method
.method static synthetic access$100()Ljava/lang/String;
.registers 1
sget-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sPackageName:Ljava/lang/String;
return-object v0
.end method
.method private static declared-synchronized ensureInitialized()V
.registers 3
const-class v1, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;
monitor-enter v1
:try_start_3
sget-boolean v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sInitialized:Z
if-nez v0, :cond_13
new-instance v0, Ljava/lang/IllegalStateException;
const-string/jumbo v2, "Not initialized!!"
invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_10
.catchall {:try_start_3 .. :try_end_10} :catchall_10
:catchall_10
move-exception v0
monitor-exit v1
throw v0
:cond_13
monitor-exit v1
return-void
.end method
.method public static declared-synchronized init(Landroid/content/Context;Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;)Z
.registers 11
const/4 v4, 0x0
const/4 v3, 0x1
const-class v5, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;
monitor-enter v5
:try_start_5
invoke-virtual {p1}, Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;->getMetaContentMap()Ljava/util/HashMap;
move-result-object v1
const-string/jumbo v2, "assets/inc_component_meta.txt"
invoke-virtual {v1, v2}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_c0
const-string/jumbo v1, "Tinker.IncrementCompMgr"
const-string/jumbo v2, "package has no incremental component meta, skip init."
invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
:try_end_1b
.catchall {:try_start_5 .. :try_end_1b} :catchall_89
const/4 v1, 0x0
:goto_1c
monitor-exit v5
return v1
:cond_1e
move-object v2, p0
:goto_1f
:try_start_1f
instance-of v1, v2, Landroid/content/ContextWrapper;
if-eqz v1, :cond_2d
move-object v0, v2
check-cast v0, Landroid/content/ContextWrapper;
move-object v1, v0
invoke-virtual {v1}, Landroid/content/ContextWrapper;->getBaseContext()Landroid/content/Context;
move-result-object p0
if-nez p0, :cond_1e
:cond_2d
sput-object v2, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v1
sput-object v1, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sPackageName:Ljava/lang/String;
invoke-virtual {p1}, Lcom/tencent/tinker/loader/shareutil/ShareSecurityCheck;->getMetaContentMap()Ljava/util/HashMap;
move-result-object v1
const-string/jumbo v6, "assets/inc_component_meta.txt"
invoke-virtual {v1, v6}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
new-instance v6, Ljava/io/StringReader;
invoke-direct {v6, v1}, Ljava/io/StringReader;-><init>(Ljava/lang/String;)V
:try_end_47
.catchall {:try_start_1f .. :try_end_47} :catchall_89
:try_start_47
invoke-static {}, Landroid/util/Xml;->newPullParser()Lorg/xmlpull/v1/XmlPullParser;
:try_end_4a
.catch Lorg/xmlpull/v1/XmlPullParserException; {:try_start_47 .. :try_end_4a} :catch_bd
.catchall {:try_start_47 .. :try_end_4a} :catchall_bb
move-result-object v4
:try_start_4b
invoke-interface {v4, v6}, Lorg/xmlpull/v1/XmlPullParser;->setInput(Ljava/io/Reader;)V
invoke-interface {v4}, Lorg/xmlpull/v1/XmlPullParser;->getEventType()I
move-result v1
:goto_52
if-eq v1, v3, :cond_a8
packed-switch v1, :pswitch_data_c4
:cond_57
:goto_57
invoke-interface {v4}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v1
goto :goto_52
:pswitch_5c
invoke-interface {v4}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v1
const-string/jumbo v7, "activity"
invoke-virtual {v7, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v7
if-eqz v7, :cond_8c
invoke-static {v2, v4}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->parseActivity(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/pm/ActivityInfo;
move-result-object v1
sget-object v7, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToActivityInfoMap:Ljava/util/Map;
iget-object v8, v1, Landroid/content/pm/ActivityInfo;->name:Ljava/lang/String;
invoke-interface {v7, v8, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_74
.catch Lorg/xmlpull/v1/XmlPullParserException; {:try_start_4b .. :try_end_74} :catch_75
.catchall {:try_start_4b .. :try_end_74} :catchall_bb
goto :goto_57
:catch_75
move-exception v1
move-object v2, v4
:goto_77
:try_start_77
new-instance v3, Ljava/io/IOException;
invoke-direct {v3, v1}, Ljava/io/IOException;-><init>(Ljava/lang/Throwable;)V
throw v3
:try_end_7d
.catchall {:try_start_77 .. :try_end_7d} :catchall_7d
:catchall_7d
move-exception v1
move-object v4, v2
:goto_7f
if-eqz v4, :cond_85
const/4 v2, 0x0
:try_start_82
invoke-interface {v4, v2}, Lorg/xmlpull/v1/XmlPullParser;->setInput(Ljava/io/Reader;)V
:try_end_85
.catch Ljava/lang/Throwable; {:try_start_82 .. :try_end_85} :catch_b9
.catchall {:try_start_82 .. :try_end_85} :catchall_89
:cond_85
:goto_85
:try_start_85
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeQuietly(Ljava/lang/Object;)V
throw v1
:try_end_89
.catchall {:try_start_85 .. :try_end_89} :catchall_89
:catchall_89
move-exception v1
monitor-exit v5
throw v1
:cond_8c
:try_start_8c
const-string/jumbo v7, "service"
invoke-virtual {v7, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v7
if-nez v7, :cond_57
const-string/jumbo v7, "receiver"
invoke-virtual {v7, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v7
if-nez v7, :cond_57
const-string/jumbo v7, "provider"
invoke-virtual {v7, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_57
goto :goto_57
:cond_a8
const/4 v1, 0x1
sput-boolean v1, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sInitialized:Z
:try_end_ab
.catch Lorg/xmlpull/v1/XmlPullParserException; {:try_start_8c .. :try_end_ab} :catch_75
.catchall {:try_start_8c .. :try_end_ab} :catchall_bb
if-eqz v4, :cond_b1
const/4 v1, 0x0
:try_start_ae
invoke-interface {v4, v1}, Lorg/xmlpull/v1/XmlPullParser;->setInput(Ljava/io/Reader;)V
:try_end_b1
.catch Ljava/lang/Throwable; {:try_start_ae .. :try_end_b1} :catch_b7
.catchall {:try_start_ae .. :try_end_b1} :catchall_89
:cond_b1
:goto_b1
:try_start_b1
invoke-static {v6}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->closeQuietly(Ljava/lang/Object;)V
:try_end_b4
.catchall {:try_start_b1 .. :try_end_b4} :catchall_89
move v1, v3
goto/16 :goto_1c
:catch_b7
move-exception v1
goto :goto_b1
:catch_b9
move-exception v2
goto :goto_85
:catchall_bb
move-exception v1
goto :goto_7f
:catch_bd
move-exception v1
move-object v2, v4
goto :goto_77
:cond_c0
move-object v2, p0
goto/16 :goto_1f
nop
:pswitch_data_c4
.packed-switch 0x2
:pswitch_5c
.end packed-switch
.end method
.method public static isIncrementActivity(Ljava/lang/String;)Z
.registers 2
invoke-static {}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->ensureInitialized()V
if-eqz p0, :cond_f
sget-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToActivityInfoMap:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_f
const/4 v0, 0x1
:goto_e
return v0
:cond_f
const/4 v0, 0x0
goto :goto_e
.end method
.method private static declared-synchronized parseActivity(Landroid/content/Context;Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/pm/ActivityInfo;
.registers 8
const/4 v5, 0x3
const-class v1, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;
monitor-enter v1
:try_start_4
new-instance v0, Landroid/content/pm/ActivityInfo;
invoke-direct {v0}, Landroid/content/pm/ActivityInfo;-><init>()V
invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v2
iput-object v2, v0, Landroid/content/pm/ActivityInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
sget-object v3, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sPackageName:Ljava/lang/String;
iput-object v3, v0, Landroid/content/pm/ActivityInfo;->packageName:Ljava/lang/String;
iget-object v3, v2, Landroid/content/pm/ApplicationInfo;->processName:Ljava/lang/String;
iput-object v3, v0, Landroid/content/pm/ActivityInfo;->processName:Ljava/lang/String;
const/4 v3, 0x0
iput v3, v0, Landroid/content/pm/ActivityInfo;->launchMode:I
iget-object v3, v2, Landroid/content/pm/ApplicationInfo;->permission:Ljava/lang/String;
iput-object v3, v0, Landroid/content/pm/ActivityInfo;->permission:Ljava/lang/String;
const/4 v3, -0x1
iput v3, v0, Landroid/content/pm/ActivityInfo;->screenOrientation:I
iget-object v3, v2, Landroid/content/pm/ApplicationInfo;->taskAffinity:Ljava/lang/String;
iput-object v3, v0, Landroid/content/pm/ActivityInfo;->taskAffinity:Ljava/lang/String;
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0xb
if-lt v3, v4, :cond_38
iget v3, v2, Landroid/content/pm/ApplicationInfo;->flags:I
const/high16 v4, 0x20000000
and-int/2addr v3, v4
if-eqz v3, :cond_38
iget v3, v0, Landroid/content/pm/ActivityInfo;->flags:I
or-int/lit16 v3, v3, 0x200
iput v3, v0, Landroid/content/pm/ActivityInfo;->flags:I
:cond_38
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x15
if-lt v3, v4, :cond_41
const/4 v3, 0x0
iput v3, v0, Landroid/content/pm/ActivityInfo;->documentLaunchMode:I
:cond_41
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0xe
if-lt v3, v4, :cond_4b
iget v2, v2, Landroid/content/pm/ApplicationInfo;->uiOptions:I
iput v2, v0, Landroid/content/pm/ActivityInfo;->uiOptions:I
:cond_4b
sget-object v2, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sActivityInfoAttrTranslator:Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;
const/4 v3, 0x0
invoke-virtual {v2, p0, v3, p1, v0}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager$AttrTranslator;->translate(Landroid/content/Context;ILorg/xmlpull/v1/XmlPullParser;Ljava/lang/Object;)V
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v2
:cond_55
:goto_55
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v3
const/4 v4, 0x1
if-eq v3, v4, :cond_64
if-ne v3, v5, :cond_66
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
:try_end_61
.catchall {:try_start_4 .. :try_end_61} :catchall_7e
move-result v4
if-gt v4, v2, :cond_66
:cond_64
monitor-exit v1
return-object v0
:cond_66
if-eq v3, v5, :cond_55
const/4 v4, 0x4
if-eq v3, v4, :cond_55
:try_start_6b
invoke-interface {p1}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v3
const-string/jumbo v4, "intent-filter"
invoke-virtual {v4, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v4
if-eqz v4, :cond_81
iget-object v3, v0, Landroid/content/pm/ActivityInfo;->name:Ljava/lang/String;
invoke-static {p0, v3, p1}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->parseIntentFilter(Landroid/content/Context;Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;)V
:try_end_7d
.catchall {:try_start_6b .. :try_end_7d} :catchall_7e
goto :goto_55
:catchall_7e
move-exception v0
monitor-exit v1
throw v0
:cond_81
:try_start_81
const-string/jumbo v4, "meta-data"
invoke-virtual {v4, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_55
invoke-static {p0, v0, p1}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->parseMetaData(Landroid/content/Context;Landroid/content/pm/ActivityInfo;Lorg/xmlpull/v1/XmlPullParser;)V
:try_end_8d
.catchall {:try_start_81 .. :try_end_8d} :catchall_7e
goto :goto_55
.end method
.method private static declared-synchronized parseIntentFilter(Landroid/content/Context;Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;)V
.registers 13
const/4 v9, 0x3
const/4 v8, 0x1
const-class v1, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;
monitor-enter v1
:try_start_5
new-instance v0, Landroid/content/IntentFilter;
invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V
const/4 v2, 0x0
const-string/jumbo v3, "priority"
invoke-interface {p2, v2, v3}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_23
invoke-static {v2}, Ljava/lang/Integer;->decode(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
invoke-virtual {v0, v2}, Landroid/content/IntentFilter;->setPriority(I)V
:cond_23
const/4 v2, 0x0
const-string/jumbo v3, "autoVerify"
invoke-interface {p2, v2, v3}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
:try_end_2e
.catchall {:try_start_5 .. :try_end_2e} :catchall_92
move-result v3
if-nez v3, :cond_56
:try_start_31
const-class v3, Landroid/content/IntentFilter;
const-string/jumbo v4, "setAutoVerify"
const/4 v5, 0x1
new-array v5, v5, [Ljava/lang/Class;
const/4 v6, 0x0
sget-object v7, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
aput-object v7, v5, v6
invoke-static {v3, v4, v5}, Lcom/tencent/tinker/loader/shareutil/ShareReflectUtil;->findMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v3
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
const-string/jumbo v6, "true"
invoke-virtual {v6, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v2
aput-object v2, v4, v5
invoke-virtual {v3, v0, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_56
.catch Ljava/lang/Throwable; {:try_start_31 .. :try_end_56} :catch_14a
.catchall {:try_start_31 .. :try_end_56} :catchall_92
:cond_56
:goto_56
:try_start_56
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v2
:cond_5a
:goto_5a
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v3
if-eq v3, v8, :cond_68
if-ne v3, v9, :cond_6f
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v4
if-gt v4, v2, :cond_6f
:cond_68
sget-object v2, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToIntentFilterMap:Ljava/util/Map;
invoke-interface {v2, p1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_6d
.catchall {:try_start_56 .. :try_end_6d} :catchall_92
monitor-exit v1
return-void
:cond_6f
if-eq v3, v9, :cond_5a
const/4 v4, 0x4
if-eq v3, v4, :cond_5a
:try_start_74
invoke-interface {p2}, Lorg/xmlpull/v1/XmlPullParser;->getName()Ljava/lang/String;
move-result-object v3
const-string/jumbo v4, "action"
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_95
const/4 v3, 0x0
const-string/jumbo v4, "name"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_8e
invoke-virtual {v0, v3}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
:cond_8e
:goto_8e
invoke-static {p2}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
:try_end_91
.catchall {:try_start_74 .. :try_end_91} :catchall_92
goto :goto_5a
:catchall_92
move-exception v0
monitor-exit v1
throw v0
:cond_95
:try_start_95
const-string/jumbo v4, "category"
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_ac
const/4 v3, 0x0
const-string/jumbo v4, "name"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_8e
invoke-virtual {v0, v3}, Landroid/content/IntentFilter;->addCategory(Ljava/lang/String;)V
goto :goto_8e
:cond_ac
const-string/jumbo v4, "data"
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_8e
const/4 v3, 0x0
const-string/jumbo v4, "mimeType"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
:try_end_bc
.catchall {:try_start_95 .. :try_end_bc} :catchall_92
move-result-object v3
if-eqz v3, :cond_c2
:try_start_bf
invoke-virtual {v0, v3}, Landroid/content/IntentFilter;->addDataType(Ljava/lang/String;)V
:try_end_c2
.catch Landroid/content/IntentFilter$MalformedMimeTypeException; {:try_start_bf .. :try_end_c2} :catch_140
.catchall {:try_start_bf .. :try_end_c2} :catchall_92
:cond_c2
const/4 v3, 0x0
:try_start_c3
const-string/jumbo v4, "scheme"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_cf
invoke-virtual {v0, v3}, Landroid/content/IntentFilter;->addDataScheme(Ljava/lang/String;)V
:cond_cf
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x13
if-lt v3, v4, :cond_ff
const/4 v3, 0x0
const-string/jumbo v4, "ssp"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_e3
const/4 v4, 0x0
invoke-virtual {v0, v3, v4}, Landroid/content/IntentFilter;->addDataSchemeSpecificPart(Ljava/lang/String;I)V
:cond_e3
const/4 v3, 0x0
const-string/jumbo v4, "sspPrefix"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_f1
const/4 v4, 0x1
invoke-virtual {v0, v3, v4}, Landroid/content/IntentFilter;->addDataSchemeSpecificPart(Ljava/lang/String;I)V
:cond_f1
const/4 v3, 0x0
const-string/jumbo v4, "sspPattern"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_ff
const/4 v4, 0x2
invoke-virtual {v0, v3, v4}, Landroid/content/IntentFilter;->addDataSchemeSpecificPart(Ljava/lang/String;I)V
:cond_ff
const/4 v3, 0x0
const-string/jumbo v4, "host"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
const/4 v4, 0x0
const-string/jumbo v5, "port"
invoke-interface {p2, v4, v5}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
if-eqz v3, :cond_114
invoke-virtual {v0, v3, v4}, Landroid/content/IntentFilter;->addDataAuthority(Ljava/lang/String;Ljava/lang/String;)V
:cond_114
const/4 v3, 0x0
const-string/jumbo v4, "path"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_122
const/4 v4, 0x0
invoke-virtual {v0, v3, v4}, Landroid/content/IntentFilter;->addDataPath(Ljava/lang/String;I)V
:cond_122
const/4 v3, 0x0
const-string/jumbo v4, "pathPrefix"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_130
const/4 v4, 0x1
invoke-virtual {v0, v3, v4}, Landroid/content/IntentFilter;->addDataPath(Ljava/lang/String;I)V
:cond_130
const/4 v3, 0x0
const-string/jumbo v4, "pathPattern"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
if-eqz v3, :cond_8e
const/4 v4, 0x2
invoke-virtual {v0, v3, v4}, Landroid/content/IntentFilter;->addDataPath(Ljava/lang/String;I)V
goto/16 :goto_8e
:catch_140
move-exception v0
new-instance v2, Lorg/xmlpull/v1/XmlPullParserException;
const-string/jumbo v3, "bad mimeType"
invoke-direct {v2, v3, p2, v0}, Lorg/xmlpull/v1/XmlPullParserException;-><init>(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/Throwable;)V
throw v2
:try_end_14a
.catchall {:try_start_c3 .. :try_end_14a} :catchall_92
:catch_14a
move-exception v2
goto/16 :goto_56
.end method
.method private static declared-synchronized parseMetaData(Landroid/content/Context;Landroid/content/pm/ActivityInfo;Lorg/xmlpull/v1/XmlPullParser;)V
.registers 8
const-class v1, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;
monitor-enter v1
:try_start_3
const-class v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;
invoke-virtual {v0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
const/4 v2, 0x0
const-string/jumbo v3, "name"
invoke-interface {p2, v2, v3}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
const/4 v3, 0x0
const-string/jumbo v4, "value"
invoke-interface {p2, v3, v4}, Lorg/xmlpull/v1/XmlPullParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
if-nez v4, :cond_2f
iget-object v4, p1, Landroid/content/pm/ActivityInfo;->metaData:Landroid/os/Bundle;
if-nez v4, :cond_2a
new-instance v4, Landroid/os/Bundle;
invoke-direct {v4, v0}, Landroid/os/Bundle;-><init>(Ljava/lang/ClassLoader;)V
iput-object v4, p1, Landroid/content/pm/ActivityInfo;->metaData:Landroid/os/Bundle;
:cond_2a
iget-object v0, p1, Landroid/content/pm/ActivityInfo;->metaData:Landroid/os/Bundle;
invoke-virtual {v0, v2, v3}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
:try_end_2f
.catchall {:try_start_3 .. :try_end_2f} :catchall_31
:cond_2f
monitor-exit v1
return-void
:catchall_31
move-exception v0
monitor-exit v1
throw v0
.end method
.method public static queryActivityInfo(Ljava/lang/String;)Landroid/content/pm/ActivityInfo;
.registers 2
invoke-static {}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->ensureInitialized()V
if-eqz p0, :cond_e
sget-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToActivityInfoMap:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/pm/ActivityInfo;
:goto_d
return-object v0
:cond_e
const/4 v0, 0x0
goto :goto_d
.end method
.method public static resolveIntent(Landroid/content/Intent;)Landroid/content/pm/ResolveInfo;
.registers 15
invoke-static {}, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->ensureInitialized()V
const/4 v2, -0x1
const/4 v1, 0x0
const/4 v9, 0x0
const/4 v8, 0x0
invoke-virtual {p0}, Landroid/content/Intent;->getComponent()Landroid/content/ComponentName;
move-result-object v0
if-eqz v0, :cond_44
invoke-virtual {v0}, Landroid/content/ComponentName;->getClassName()Ljava/lang/String;
move-result-object v0
sget-object v3, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToActivityInfoMap:Ljava/util/Map;
invoke-interface {v3, v0}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_af
const/4 v1, 0x0
:goto_1a
move v11, v1
:goto_1b
if-eqz v0, :cond_a5
new-instance v1, Landroid/content/pm/ResolveInfo;
invoke-direct {v1}, Landroid/content/pm/ResolveInfo;-><init>()V
sget-object v2, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToActivityInfoMap:Ljava/util/Map;
invoke-interface {v2, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/pm/ActivityInfo;
iput-object v0, v1, Landroid/content/pm/ResolveInfo;->activityInfo:Landroid/content/pm/ActivityInfo;
iput-object v9, v1, Landroid/content/pm/ResolveInfo;->filter:Landroid/content/IntentFilter;
iput v8, v1, Landroid/content/pm/ResolveInfo;->match:I
iput v11, v1, Landroid/content/pm/ResolveInfo;->priority:I
sget-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sPackageName:Ljava/lang/String;
iput-object v0, v1, Landroid/content/pm/ResolveInfo;->resolvePackageName:Ljava/lang/String;
iget-object v0, v1, Landroid/content/pm/ResolveInfo;->activityInfo:Landroid/content/pm/ActivityInfo;
iget v0, v0, Landroid/content/pm/ActivityInfo;->icon:I
iput v0, v1, Landroid/content/pm/ResolveInfo;->icon:I
iget-object v0, v1, Landroid/content/pm/ResolveInfo;->activityInfo:Landroid/content/pm/ActivityInfo;
iget v0, v0, Landroid/content/pm/ActivityInfo;->labelRes:I
iput v0, v1, Landroid/content/pm/ResolveInfo;->labelRes:I
move-object v0, v1
:goto_43
return-object v0
:cond_44
sget-object v0, Lcom/tencent/tinker/loader/hotplug/IncrementComponentManager;->sClassNameToIntentFilterMap:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v12
move-object v10, v1
move v11, v2
:goto_50
invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_ac
invoke-interface {v12}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
move-object v7, v1
check-cast v7, Ljava/lang/String;
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/IntentFilter;
invoke-virtual {p0}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0}, Landroid/content/Intent;->getType()Ljava/lang/String;
move-result-object v2
invoke-virtual {p0}, Landroid/content/Intent;->getScheme()Ljava/lang/String;
move-result-object v3
invoke-virtual {p0}, Landroid/content/Intent;->getData()Landroid/net/Uri;
move-result-object v4
invoke-virtual {p0}, Landroid/content/Intent;->getCategories()Ljava/util/Set;
move-result-object v5
const-string/jumbo v6, "Tinker.IncrementCompMgr"
invoke-virtual/range {v0 .. v6}, Landroid/content/IntentFilter;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I
move-result v1
const/4 v2, -0x3
if-eq v1, v2, :cond_a2
const/4 v2, -0x4
if-eq v1, v2, :cond_a2
const/4 v2, -0x2
if-eq v1, v2, :cond_a2
const/4 v2, -0x1
if-eq v1, v2, :cond_a2
const/4 v2, 0x1
move v3, v2
:goto_92
invoke-virtual {v0}, Landroid/content/IntentFilter;->getPriority()I
move-result v2
if-eqz v3, :cond_a7
if-le v2, v11, :cond_a7
move v13, v1
move-object v1, v0
move v0, v13
:goto_9d
move v8, v0
move-object v9, v1
move-object v10, v7
move v11, v2
goto :goto_50
:cond_a2
const/4 v2, 0x0
move v3, v2
goto :goto_92
:cond_a5
const/4 v0, 0x0
goto :goto_43
:cond_a7
move v0, v8
move-object v1, v9
move-object v7, v10
move v2, v11
goto :goto_9d
:cond_ac
move-object v0, v10
goto/16 :goto_1b
:cond_af
move-object v0, v1
move v1, v2
goto/16 :goto_1a
.end method
.method private static skipCurrentTag(Lorg/xmlpull/v1/XmlPullParser;)V
.registers 4
invoke-interface {p0}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v0
:cond_4
invoke-interface {p0}, Lorg/xmlpull/v1/XmlPullParser;->next()I
move-result v1
const/4 v2, 0x1
if-eq v1, v2, :cond_14
const/4 v2, 0x3
if-ne v1, v2, :cond_4
invoke-interface {p0}, Lorg/xmlpull/v1/XmlPullParser;->getDepth()I
move-result v1
if-gt v1, v0, :cond_4
:cond_14
return-void
.end method