ClassUtils.smali
.class public Landhook/lib/xposed/ClassUtils;
.super Ljava/lang/Object;
.source "ClassUtils.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landhook/lib/xposed/ClassUtils$ArrayUtils;,
Landhook/lib/xposed/ClassUtils$StringUtils;
}
.end annotation
# static fields
.field public static final INNER_CLASS_SEPARATOR:Ljava/lang/String;
.field public static final INNER_CLASS_SEPARATOR_CHAR:C = '$'
.field public static final PACKAGE_SEPARATOR:Ljava/lang/String;
.field public static final PACKAGE_SEPARATOR_CHAR:C = '.'
.field private static final SystemUtils_isJavaVersionAtLeast_JavaVersion_JAVA_1_5:Z = true
.field private static final abbreviationMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static final primitiveWrapperMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.end field
.field private static final reverseAbbreviationMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static final wrapperPrimitiveMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 4
const/16 v0, 0x2e
.line 119
invoke-static {v0}, Ljava/lang/String;->valueOf(C)Ljava/lang/String;
move-result-object v0
sput-object v0, Landhook/lib/xposed/ClassUtils;->PACKAGE_SEPARATOR:Ljava/lang/String;
const/16 v0, 0x24
.line 129
invoke-static {v0}, Ljava/lang/String;->valueOf(C)Ljava/lang/String;
move-result-object v0
sput-object v0, Landhook/lib/xposed/ClassUtils;->INNER_CLASS_SEPARATOR:Ljava/lang/String;
.line 134
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
.line 137
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Boolean;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 138
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Byte;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 139
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Character;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 140
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Short;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 141
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Integer;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 142
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Long;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 143
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Double;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 144
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
const-class v2, Ljava/lang/Float;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 145
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
sget-object v1, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
sget-object v2, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 151
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Landhook/lib/xposed/ClassUtils;->wrapperPrimitiveMap:Ljava/util/HashMap;
.line 154
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->keySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_79
:goto_79
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_99
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Class;
.line 155
sget-object v2, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
invoke-virtual {v2, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Class;
.line 156
invoke-virtual {v1, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_79
.line 157
sget-object v3, Landhook/lib/xposed/ClassUtils;->wrapperPrimitiveMap:Ljava/util/HashMap;
invoke-virtual {v3, v2, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_79
.line 165
:cond_99
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Landhook/lib/xposed/ClassUtils;->abbreviationMap:Ljava/util/HashMap;
.line 170
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Landhook/lib/xposed/ClassUtils;->reverseAbbreviationMap:Ljava/util/HashMap;
const-string v0, "int"
const-string v1, "I"
.line 187
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "boolean"
const-string v1, "Z"
.line 188
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "float"
const-string v1, "F"
.line 189
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "long"
const-string v1, "J"
.line 190
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "short"
const-string v1, "S"
.line 191
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "byte"
const-string v1, "B"
.line 192
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "double"
const-string v1, "D"
.line 193
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
const-string v0, "char"
const-string v1, "C"
.line 194
invoke-static {v0, v1}, Landhook/lib/xposed/ClassUtils;->addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 206
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static addAbbreviation(Ljava/lang/String;Ljava/lang/String;)V
.registers 3
.line 179
sget-object v0, Landhook/lib/xposed/ClassUtils;->abbreviationMap:Ljava/util/HashMap;
invoke-virtual {v0, p0, p1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 180
sget-object v0, Landhook/lib/xposed/ClassUtils;->reverseAbbreviationMap:Ljava/util/HashMap;
invoke-virtual {v0, p1, p0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public static convertClassNamesToClasses(Ljava/util/List;)Ljava/util/ArrayList;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Ljava/lang/String;",
">;)",
"Ljava/util/ArrayList<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 464
:cond_4
new-instance v1, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v2
invoke-direct {v1, v2}, Ljava/util/ArrayList;-><init>(I)V
.line 465
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_11
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_29
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 467
:try_start_1d
invoke-static {v2}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:try_end_24
.catch Ljava/lang/Exception; {:try_start_1d .. :try_end_24} :catch_25
goto :goto_11
.line 469
:catch_25
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_11
:cond_29
return-object v1
.end method
.method public static convertClassesToClassNames(Ljava/util/List;)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Ljava/lang/Class<",
"*>;>;)",
"Ljava/util/List<",
"Ljava/lang/String;",
">;"
}
.end annotation
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 490
:cond_4
new-instance v1, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v2
invoke-direct {v1, v2}, Ljava/util/ArrayList;-><init>(I)V
.line 491
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_11
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_2b
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Class;
if-nez v2, :cond_23
.line 493
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_11
.line 495
:cond_23
invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_11
:cond_2b
return-object v1
.end method
.method public static getAllInterfaces(Ljava/lang/Class;)Ljava/util/ArrayList;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/util/ArrayList<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
if-nez p0, :cond_4
const/4 p0, 0x0
return-object p0
.line 420
:cond_4
new-instance v0, Ljava/util/LinkedHashSet;
invoke-direct {v0}, Ljava/util/LinkedHashSet;-><init>()V
.line 421
invoke-static {p0, v0}, Landhook/lib/xposed/ClassUtils;->getAllInterfaces(Ljava/lang/Class;Ljava/util/HashSet;)V
.line 423
new-instance p0, Ljava/util/ArrayList;
invoke-direct {p0, v0}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
return-object p0
.end method
.method private static getAllInterfaces(Ljava/lang/Class;Ljava/util/HashSet;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/util/HashSet<",
"Ljava/lang/Class<",
"*>;>;)V"
}
.end annotation
:goto_0
if-eqz p0, :cond_1d
.line 434
invoke-virtual {p0}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object v0
.line 436
array-length v1, v0
const/4 v2, 0x0
:goto_8
if-ge v2, v1, :cond_18
aget-object v3, v0, v2
.line 437
invoke-virtual {p1, v3}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_15
.line 438
invoke-static {v3, p1}, Landhook/lib/xposed/ClassUtils;->getAllInterfaces(Ljava/lang/Class;Ljava/util/HashSet;)V
:cond_15
add-int/lit8 v2, v2, 0x1
goto :goto_8
.line 442
:cond_18
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object p0
goto :goto_0
:cond_1d
return-void
.end method
.method public static getAllSuperclasses(Ljava/lang/Class;)Ljava/util/ArrayList;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/util/ArrayList<",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
if-nez p0, :cond_4
const/4 p0, 0x0
return-object p0
.line 395
:cond_4
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 396
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object p0
:goto_d
if-eqz p0, :cond_17
.line 398
invoke-virtual {v0, p0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 399
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object p0
goto :goto_d
:cond_17
return-object v0
.end method
.method private static getCanonicalName(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.line 1177
invoke-static {p0}, Landhook/lib/xposed/ClassUtils$StringUtils;->deleteWhitespace(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
if-nez p0, :cond_8
const/4 p0, 0x0
return-object p0
:cond_8
const/4 v0, 0x0
const/4 v1, 0x0
:goto_a
const-string v2, "["
.line 1182
invoke-virtual {p0, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
const/4 v3, 0x1
if-eqz v2, :cond_1a
add-int/lit8 v1, v1, 0x1
.line 1184
invoke-virtual {p0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
goto :goto_a
:cond_1a
if-ge v1, v3, :cond_1d
return-object p0
:cond_1d
const-string v2, "L"
.line 1189
invoke-virtual {p0, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_3c
const-string v2, ";"
.line 1192
invoke-virtual {p0, v2}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_33
.line 1193
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
sub-int/2addr v2, v3
goto :goto_37
.line 1194
:cond_33
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
.line 1190
:goto_37
invoke-virtual {p0, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
goto :goto_4e
.line 1196
:cond_3c
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
if-lez v2, :cond_4e
.line 1197
sget-object v2, Landhook/lib/xposed/ClassUtils;->reverseAbbreviationMap:Ljava/util/HashMap;
invoke-virtual {p0, v0, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
invoke-virtual {v2, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/String;
.line 1200
:cond_4e
:goto_4e
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
:goto_53
if-ge v0, v1, :cond_5d
const-string p0, "[]"
.line 1202
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v0, v0, 0x1
goto :goto_53
.line 1204
:cond_5d
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/ClassLoader;",
"Ljava/lang/String;",
")",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/ClassNotFoundException;
}
.end annotation
const/4 v0, 0x1
.line 927
invoke-static {p0, p1, v0}, Landhook/lib/xposed/ClassUtils;->getClass(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/lang/Class;
move-result-object p0
return-object p0
.end method
.method public static getClass(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/lang/Class;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/ClassLoader;",
"Ljava/lang/String;",
"Z)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/ClassNotFoundException;
}
.end annotation
.line 889
:try_start_0
sget-object v0, Landhook/lib/xposed/ClassUtils;->abbreviationMap:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2a
.line 890
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;
sget-object v1, Landhook/lib/xposed/ClassUtils;->abbreviationMap:Ljava/util/HashMap;
invoke-virtual {v1, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 891
invoke-static {v0, p2, p0}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object p0
goto :goto_32
.line 893
:cond_2a
invoke-static {p1}, Landhook/lib/xposed/ClassUtils;->toCanonicalName(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {v0, p2, p0}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
move-result-object p0
:try_end_32
.catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_32} :catch_33
:goto_32
return-object p0
:catch_33
move-exception v0
const/16 v1, 0x2e
.line 898
invoke-virtual {p1, v1}, Ljava/lang/String;->lastIndexOf(I)I
move-result v1
const/4 v2, -0x1
if-eq v1, v2, :cond_61
.line 902
:try_start_3d
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const/4 v3, 0x0
invoke-virtual {p1, v3, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/16 v3, 0x24
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 v1, v1, 0x1
.line 903
invoke-virtual {p1, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 902
invoke-static {p0, p1, p2}, Landhook/lib/xposed/ClassUtils;->getClass(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/lang/Class;
move-result-object p0
:try_end_60
.catch Ljava/lang/ClassNotFoundException; {:try_start_3d .. :try_end_60} :catch_61
return-object p0
.line 910
:catch_61
:cond_61
throw v0
.end method
.method public static getClass(Ljava/lang/String;)Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/ClassNotFoundException;
}
.end annotation
const/4 v0, 0x1
.line 942
invoke-static {p0, v0}, Landhook/lib/xposed/ClassUtils;->getClass(Ljava/lang/String;Z)Ljava/lang/Class;
move-result-object p0
return-object p0
.end method
.method public static getClass(Ljava/lang/String;Z)Ljava/lang/Class;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Z)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/ClassNotFoundException;
}
.end annotation
.line 957
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
if-nez v0, :cond_10
.line 958
const-class v0, Landhook/lib/xposed/ClassUtils;
invoke-virtual {v0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
.line 959
:cond_10
invoke-static {v0, p0, p1}, Landhook/lib/xposed/ClassUtils;->getClass(Ljava/lang/ClassLoader;Ljava/lang/String;Z)Ljava/lang/Class;
move-result-object p0
return-object p0
.end method
.method public static getPackageCanonicalName(Ljava/lang/Class;)Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
if-nez p0, :cond_5
const-string p0, ""
return-object p0
.line 1143
:cond_5
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getPackageCanonicalName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getPackageCanonicalName(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
.registers 2
if-nez p0, :cond_3
return-object p1
.line 1129
:cond_3
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getPackageCanonicalName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getPackageCanonicalName(Ljava/lang/String;)Ljava/lang/String;
.registers 1
.line 1157
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getCanonicalName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getPackageName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getPackageName(Ljava/lang/Class;)Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
if-nez p0, :cond_5
const-string p0, ""
return-object p0
.line 349
:cond_5
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getPackageName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getPackageName(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
.registers 2
if-nez p0, :cond_3
return-object p1
.line 336
:cond_3
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getPackageName(Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getPackageName(Ljava/lang/String;)Ljava/lang/String;
.registers 6
const-string v0, ""
if-eqz p0, :cond_42
.line 362
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
if-nez v1, :cond_b
goto :goto_42
:cond_b
:goto_b
const/4 v1, 0x0
.line 367
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x5b
const/4 v4, 0x1
if-ne v2, v3, :cond_1a
.line 368
invoke-virtual {p0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
goto :goto_b
.line 371
:cond_1a
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x4c
if-ne v2, v3, :cond_33
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
sub-int/2addr v2, v4
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x3b
if-ne v2, v3, :cond_33
.line 372
invoke-virtual {p0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
:cond_33
const/16 v2, 0x2e
.line 375
invoke-virtual {p0, v2}, Ljava/lang/String;->lastIndexOf(I)I
move-result v2
const/4 v3, -0x1
if-ne v2, v3, :cond_3d
return-object v0
.line 379
:cond_3d
invoke-virtual {p0, v1, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_42
:goto_42
return-object v0
.end method
.method public static varargs getPublicMethod(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/String;",
"[",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/reflect/Method;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/SecurityException;,
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 989
invoke-virtual {p0, p1, p2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 990
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getModifiers()I
move-result v1
invoke-static {v1}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v1
if-eqz v1, :cond_13
return-object v0
.line 994
:cond_13
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 995
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getAllInterfaces(Ljava/lang/Class;)Ljava/util/ArrayList;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
.line 996
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getAllSuperclasses(Ljava/lang/Class;)Ljava/util/ArrayList;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
.line 998
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_2a
:goto_2a
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_56
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Class;
.line 999
invoke-virtual {v0}, Ljava/lang/Class;->getModifiers()I
move-result v1
invoke-static {v1}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v1
if-nez v1, :cond_41
goto :goto_2a
.line 1004
:cond_41
:try_start_41
invoke-virtual {v0, p1, p2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
:try_end_45
.catch Ljava/lang/NoSuchMethodException; {:try_start_41 .. :try_end_45} :catch_54
.line 1008
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getModifiers()I
move-result v1
invoke-static {v1}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v1
if-eqz v1, :cond_2a
return-object v0
:catch_54
nop
goto :goto_2a
.line 1013
:cond_56
new-instance p0, Ljava/lang/NoSuchMethodException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Can\'t find a public method for "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " "
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1014
invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
goto :goto_7a
:goto_79
throw p0
:goto_7a
goto :goto_79
.end method
.method public static getShortCanonicalName(Ljava/lang/Class;)Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
if-nez p0, :cond_5
const-string p0, ""
return-object p0
.line 1098
:cond_5
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getShortCanonicalName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getShortCanonicalName(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
.registers 2
if-nez p0, :cond_3
return-object p1
.line 1084
:cond_3
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getShortCanonicalName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getShortCanonicalName(Ljava/lang/String;)Ljava/lang/String;
.registers 1
.line 1111
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getCanonicalName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getShortClassName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getShortClassName(Ljava/lang/Class;)Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
if-nez p0, :cond_5
const-string p0, ""
return-object p0
.line 240
:cond_5
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getShortClassName(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getShortClassName(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
.registers 2
if-nez p0, :cond_3
return-object p1
.line 223
:cond_3
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getShortClassName(Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getShortClassName(Ljava/lang/String;)Ljava/lang/String;
.registers 8
const-string v0, ""
if-nez p0, :cond_5
return-object v0
.line 259
:cond_5
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
if-nez v1, :cond_c
return-object v0
.line 263
:cond_c
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "["
.line 266
invoke-virtual {p0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
const/4 v2, 0x0
const/4 v3, 0x1
if-eqz v1, :cond_4b
.line 267
:goto_1b
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v4, 0x5b
if-ne v1, v4, :cond_2d
.line 268
invoke-virtual {p0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
const-string v1, "[]"
.line 269
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_1b
.line 272
:cond_2d
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v4, 0x4c
if-ne v1, v4, :cond_4b
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
sub-int/2addr v1, v3
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
const/16 v4, 0x3b
if-ne v1, v4, :cond_4b
.line 273
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
sub-int/2addr v1, v3
invoke-virtual {p0, v3, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
.line 277
:cond_4b
sget-object v1, Landhook/lib/xposed/ClassUtils;->reverseAbbreviationMap:Ljava/util/HashMap;
invoke-virtual {v1, p0}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_5b
.line 278
sget-object v1, Landhook/lib/xposed/ClassUtils;->reverseAbbreviationMap:Ljava/util/HashMap;
invoke-virtual {v1, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/String;
:cond_5b
const/16 v1, 0x2e
.line 281
invoke-virtual {p0, v1}, Ljava/lang/String;->lastIndexOf(I)I
move-result v4
const/4 v5, -0x1
if-ne v4, v5, :cond_65
goto :goto_67
:cond_65
add-int/lit8 v2, v4, 0x1
:goto_67
const/16 v6, 0x24
.line 282
invoke-virtual {p0, v6, v2}, Ljava/lang/String;->indexOf(II)I
move-result v2
add-int/2addr v4, v3
.line 284
invoke-virtual {p0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
if-eq v2, v5, :cond_78
.line 286
invoke-virtual {p0, v6, v1}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object p0
.line 288
:cond_78
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getSimpleName(Ljava/lang/Class;)Ljava/lang/String;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/String;"
}
.end annotation
if-nez p0, :cond_5
const-string p0, ""
return-object p0
.line 303
:cond_5
invoke-virtual {p0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getSimpleName(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
.registers 2
if-nez p0, :cond_3
return-object p1
.line 319
:cond_3
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->getSimpleName(Ljava/lang/Class;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static isAssignable(Ljava/lang/Class;Ljava/lang/Class;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
const/4 v0, 0x1
.line 657
invoke-static {p0, p1, v0}, Landhook/lib/xposed/ClassUtils;->isAssignable(Ljava/lang/Class;Ljava/lang/Class;Z)Z
move-result p0
return p0
.end method
.method public static isAssignable(Ljava/lang/Class;Ljava/lang/Class;Z)Z
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Class<",
"*>;Z)Z"
}
.end annotation
const/4 v0, 0x0
if-nez p1, :cond_4
return v0
:cond_4
const/4 v1, 0x1
if-nez p0, :cond_d
.line 693
invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z
move-result p0
xor-int/2addr p0, v1
return p0
:cond_d
if-eqz p2, :cond_35
.line 697
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result p2
if-eqz p2, :cond_22
invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z
move-result p2
if-nez p2, :cond_22
.line 698
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->primitiveToWrapper(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p0
if-nez p0, :cond_22
return v0
.line 703
:cond_22
invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z
move-result p2
if-eqz p2, :cond_35
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result p2
if-nez p2, :cond_35
.line 704
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->wrapperToPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object p0
if-nez p0, :cond_35
return v0
.line 710
:cond_35
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_3c
return v1
.line 713
:cond_3c
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result p2
if-eqz p2, :cond_12c
.line 714
invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z
move-result p2
if-nez p2, :cond_49
return v0
.line 717
:cond_49
sget-object p2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_6b
.line 718
sget-object p0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_69
sget-object p0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
.line 719
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_69
sget-object p0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
.line 720
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_6a
:cond_69
const/4 v0, 0x1
:cond_6a
return v0
.line 722
:cond_6b
sget-object p2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_85
.line 723
sget-object p0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_83
sget-object p0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
.line 724
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_84
:cond_83
const/4 v0, 0x1
:cond_84
return v0
.line 726
:cond_85
sget-object p2, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_8e
return v0
.line 729
:cond_8e
sget-object p2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_97
return v0
.line 732
:cond_97
sget-object p2, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_a6
.line 733
sget-object p0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
return p0
.line 735
:cond_a6
sget-object p2, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_d0
.line 736
sget-object p0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_ce
sget-object p0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
.line 737
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_ce
sget-object p0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
.line 738
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_ce
sget-object p0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
.line 739
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_cf
:cond_ce
const/4 v0, 0x1
:cond_cf
return v0
.line 741
:cond_d0
sget-object p2, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p2
if-eqz p2, :cond_fa
.line 742
sget-object p0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_f8
sget-object p0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
.line 743
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_f8
sget-object p0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
.line 744
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_f8
sget-object p0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
.line 745
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_f9
:cond_f8
const/4 v0, 0x1
:cond_f9
return v0
.line 747
:cond_fa
sget-object p2, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
invoke-virtual {p2, p0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_12b
.line 748
sget-object p0, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_12a
sget-object p0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
.line 749
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_12a
sget-object p0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
.line 750
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_12a
sget-object p0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
.line 751
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-nez p0, :cond_12a
sget-object p0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
.line 752
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_12b
:cond_12a
const/4 v0, 0x1
:cond_12b
return v0
.line 757
:cond_12c
invoke-virtual {p1, p0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result p0
return p0
.end method
.method public static varargs isAssignable([Ljava/lang/Class;[Ljava/lang/Class;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
const/4 v0, 0x1
.line 543
invoke-static {p0, p1, v0}, Landhook/lib/xposed/ClassUtils;->isAssignable([Ljava/lang/Class;[Ljava/lang/Class;Z)Z
move-result p0
return p0
.end method
.method public static isAssignable([Ljava/lang/Class;[Ljava/lang/Class;Z)Z
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/Class<",
"*>;Z)Z"
}
.end annotation
.line 579
invoke-static {p0, p1}, Landhook/lib/xposed/ClassUtils$ArrayUtils;->isSameLength([Ljava/lang/Object;[Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_8
return v1
:cond_8
if-nez p0, :cond_c
.line 583
sget-object p0, Landhook/lib/xposed/ClassUtils$ArrayUtils;->EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
:cond_c
if-nez p1, :cond_10
.line 586
sget-object p1, Landhook/lib/xposed/ClassUtils$ArrayUtils;->EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
:cond_10
const/4 v0, 0x0
.line 588
:goto_11
array-length v2, p0
if-ge v0, v2, :cond_22
.line 589
aget-object v2, p0, v0
aget-object v3, p1, v0
invoke-static {v2, v3, p2}, Landhook/lib/xposed/ClassUtils;->isAssignable(Ljava/lang/Class;Ljava/lang/Class;Z)Z
move-result v2
if-nez v2, :cond_1f
return v1
:cond_1f
add-int/lit8 v0, v0, 0x1
goto :goto_11
:cond_22
const/4 p0, 0x1
return p0
.end method
.method public static isInnerClass(Ljava/lang/Class;)Z
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
if-eqz p0, :cond_a
.line 867
invoke-virtual {p0}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object p0
if-eqz p0, :cond_a
const/4 p0, 0x1
goto :goto_b
:cond_a
const/4 p0, 0x0
:goto_b
return p0
.end method
.method public static isPrimitiveOrWrapper(Ljava/lang/Class;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
.line 609
:cond_4
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v1
if-nez v1, :cond_10
invoke-static {p0}, Landhook/lib/xposed/ClassUtils;->isPrimitiveWrapper(Ljava/lang/Class;)Z
move-result p0
if-eqz p0, :cond_11
:cond_10
const/4 v0, 0x1
:cond_11
return v0
.end method
.method public static isPrimitiveWrapper(Ljava/lang/Class;)Z
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
.line 622
sget-object v0, Landhook/lib/xposed/ClassUtils;->wrapperPrimitiveMap:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result p0
return p0
.end method
.method public static primitiveToWrapper(Ljava/lang/Class;)Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
if-eqz p0, :cond_10
.line 774
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-eqz v0, :cond_10
.line 775
sget-object v0, Landhook/lib/xposed/ClassUtils;->primitiveWrapperMap:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Class;
:cond_10
return-object p0
.end method
.method public static varargs primitivesToWrappers([Ljava/lang/Class;)[Ljava/lang/Class;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Class<",
"*>;)[",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
if-nez p0, :cond_4
const/4 p0, 0x0
return-object p0
.line 795
:cond_4
array-length v0, p0
if-nez v0, :cond_8
return-object p0
.line 799
:cond_8
array-length v0, p0
new-array v0, v0, [Ljava/lang/Class;
const/4 v1, 0x0
.line 800
:goto_c
array-length v2, p0
if-ge v1, v2, :cond_1a
.line 801
aget-object v2, p0, v1
invoke-static {v2}, Landhook/lib/xposed/ClassUtils;->primitiveToWrapper(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v2
aput-object v2, v0, v1
add-int/lit8 v1, v1, 0x1
goto :goto_c
:cond_1a
return-object v0
.end method
.method private static toCanonicalName(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.line 1026
invoke-static {p0}, Landhook/lib/xposed/ClassUtils$StringUtils;->deleteWhitespace(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_4a
const-string v0, "[]"
.line 1029
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_49
.line 1030
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 1031
:goto_13
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_2a
const/4 v2, 0x0
.line 1032
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, -0x2
invoke-virtual {p0, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
const-string v2, "["
.line 1033
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_13
.line 1035
:cond_2a
sget-object v0, Landhook/lib/xposed/ClassUtils;->abbreviationMap:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
if-eqz v0, :cond_38
.line 1037
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_45
:cond_38
const-string v0, "L"
.line 1039
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ";"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1041
:goto_45
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
:cond_49
return-object p0
.line 1028
:cond_4a
new-instance p0, Ljava/lang/NullPointerException;
const-string v0, "className must not be null."
invoke-direct {p0, v0}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
goto :goto_53
:goto_52
throw p0
:goto_53
goto :goto_52
.end method
.method public static varargs toClass([Ljava/lang/Object;)[Ljava/lang/Class;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Object;",
")[",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
const/4 v0, 0x0
if-nez p0, :cond_4
return-object v0
.line 1059
:cond_4
array-length v1, p0
if-nez v1, :cond_a
.line 1060
sget-object p0, Landhook/lib/xposed/ClassUtils$ArrayUtils;->EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
return-object p0
.line 1062
:cond_a
array-length v1, p0
new-array v1, v1, [Ljava/lang/Class;
const/4 v2, 0x0
.line 1063
:goto_e
array-length v3, p0
if-ge v2, v3, :cond_22
.line 1064
aget-object v3, p0, v2
if-nez v3, :cond_17
move-object v3, v0
goto :goto_1d
:cond_17
aget-object v3, p0, v2
invoke-virtual {v3}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
:goto_1d
aput-object v3, v1, v2
add-int/lit8 v2, v2, 0x1
goto :goto_e
:cond_22
return-object v1
.end method
.method public static wrapperToPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 823
sget-object v0, Landhook/lib/xposed/ClassUtils;->wrapperPrimitiveMap:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/Class;
return-object p0
.end method
.method public static varargs wrappersToPrimitives([Ljava/lang/Class;)[Ljava/lang/Class;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Class<",
"*>;)[",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
if-nez p0, :cond_4
const/4 p0, 0x0
return-object p0
.line 845
:cond_4
array-length v0, p0
if-nez v0, :cond_8
return-object p0
.line 849
:cond_8
array-length v0, p0
new-array v0, v0, [Ljava/lang/Class;
const/4 v1, 0x0
.line 850
:goto_c
array-length v2, p0
if-ge v1, v2, :cond_1a
.line 851
aget-object v2, p0, v1
invoke-static {v2}, Landhook/lib/xposed/ClassUtils;->wrapperToPrimitive(Ljava/lang/Class;)Ljava/lang/Class;
move-result-object v2
aput-object v2, v0, v1
add-int/lit8 v1, v1, 0x1
goto :goto_c
:cond_1a
return-object v0
.end method