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