ActivityStubManager.smali
.class public Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;
.super Ljava/lang/Object;
# static fields
.field private static final NEXT_SINGLEINSTANCE_STUB_IDX_SLOTS:[I
.field private static final NEXT_SINGLETASK_STUB_IDX_SLOTS:[I
.field private static final NEXT_SINGLETOP_STUB_IDX_SLOTS:[I
.field private static final NEXT_STANDARD_STUB_IDX_SLOTS:[I
.field private static final NOTRANSPARENT_SLOT_INDEX:I = 0x0
.field private static final SINGLEINSTANCE_STUB_COUNT_SLOTS:[I
.field private static final SINGLETASK_STUB_COUNT_SLOTS:[I
.field private static final SINGLETOP_STUB_COUNT_SLOTS:[I
.field private static final STANDARD_STUB_COUNT_SLOTS:[I
.field private static final TAG:Ljava/lang/String; = "Tinker.ActivityStubManager"
.field private static final TRANSPARENT_SLOT_INDEX:I = 0x1
.field private static sTargetToStubClassNameMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 2
const/4 v1, 0x2
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->sTargetToStubClassNameMap:Ljava/util/Map;
new-array v0, v1, [I
fill-array-data v0, :array_42
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->STANDARD_STUB_COUNT_SLOTS:[I
new-array v0, v1, [I
fill-array-data v0, :array_4a
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->SINGLETOP_STUB_COUNT_SLOTS:[I
new-array v0, v1, [I
fill-array-data v0, :array_52
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->SINGLETASK_STUB_COUNT_SLOTS:[I
new-array v0, v1, [I
fill-array-data v0, :array_5a
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->SINGLEINSTANCE_STUB_COUNT_SLOTS:[I
new-array v0, v1, [I
fill-array-data v0, :array_62
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_STANDARD_STUB_IDX_SLOTS:[I
new-array v0, v1, [I
fill-array-data v0, :array_6a
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_SINGLETOP_STUB_IDX_SLOTS:[I
new-array v0, v1, [I
fill-array-data v0, :array_72
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_SINGLETASK_STUB_IDX_SLOTS:[I
new-array v0, v1, [I
fill-array-data v0, :array_7a
sput-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_SINGLEINSTANCE_STUB_IDX_SLOTS:[I
return-void
nop
:array_42
.array-data 4
0xa
0x3
.end array-data
:array_4a
.array-data 4
0xa
0x3
.end array-data
:array_52
.array-data 4
0xa
0x3
.end array-data
:array_5a
.array-data 4
0xa
0x3
.end array-data
:array_62
.array-data 4
0x0
0x0
.end array-data
:array_6a
.array-data 4
0x0
0x0
.end array-data
:array_72
.array-data 4
0x0
0x0
.end array-data
:array_7a
.array-data 4
0x0
0x0
.end array-data
.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 public static assignStub(Ljava/lang/String;IZ)Ljava/lang/String;
.registers 11
const/4 v1, 0x1
const/4 v2, 0x0
sget-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->sTargetToStubClassNameMap: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;
if-eqz v0, :cond_d
:goto_c
return-object v0
:cond_d
packed-switch p1, :pswitch_data_74
sget-object v4, Lcom/tencent/tinker/loader/hotplug/ActivityStubs;->STARDARD_STUB_CLASSNAME_FORMAT:Ljava/lang/String;
sget-object v3, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_STANDARD_STUB_IDX_SLOTS:[I
sget-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->STANDARD_STUB_COUNT_SLOTS:[I
move-object v5, v0
move-object v6, v3
move-object v0, v4
:goto_19
if-eqz p2, :cond_6e
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string/jumbo v3, "_T"
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
move-object v3, v0
move v0, v1
:goto_31
aget v4, v6, v0
add-int/lit8 v7, v4, 0x1
aput v7, v6, v0
aget v5, v5, v0
if-lt v4, v5, :cond_71
aput v2, v6, v0
move v0, v2
:goto_3e
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
aput-object v0, v1, v2
invoke-static {v3, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
sget-object v1, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->sTargetToStubClassNameMap:Ljava/util/Map;
invoke-interface {v1, p0, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_c
:pswitch_50
sget-object v4, Lcom/tencent/tinker/loader/hotplug/ActivityStubs;->SINGLETOP_STUB_CLASSNAME_FORMAT:Ljava/lang/String;
sget-object v3, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_SINGLETOP_STUB_IDX_SLOTS:[I
sget-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->SINGLETOP_STUB_COUNT_SLOTS:[I
move-object v5, v0
move-object v6, v3
move-object v0, v4
goto :goto_19
:pswitch_5a
sget-object v4, Lcom/tencent/tinker/loader/hotplug/ActivityStubs;->SINGLETASK_STUB_CLASSNAME_FORMAT:Ljava/lang/String;
sget-object v3, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_SINGLETASK_STUB_IDX_SLOTS:[I
sget-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->SINGLETASK_STUB_COUNT_SLOTS:[I
move-object v5, v0
move-object v6, v3
move-object v0, v4
goto :goto_19
:pswitch_64
sget-object v4, Lcom/tencent/tinker/loader/hotplug/ActivityStubs;->SINGLEINSTANCE_STUB_CLASSNAME_FORMAT:Ljava/lang/String;
sget-object v3, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->NEXT_SINGLEINSTANCE_STUB_IDX_SLOTS:[I
sget-object v0, Lcom/tencent/tinker/loader/hotplug/ActivityStubManager;->SINGLEINSTANCE_STUB_COUNT_SLOTS:[I
move-object v5, v0
move-object v6, v3
move-object v0, v4
goto :goto_19
:cond_6e
move-object v3, v0
move v0, v2
goto :goto_31
:cond_71
move v0, v4
goto :goto_3e
nop
:pswitch_data_74
.packed-switch 0x1
:pswitch_50
:pswitch_5a
:pswitch_64
.end packed-switch
.end method