r.smali
.class public final Landroidx/lifecycle/r;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static a:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field public static b:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/Class<",
"*>;",
"Ljava/util/List<",
"Ljava/lang/reflect/Constructor<",
"+",
"Landroidx/lifecycle/f;",
">;>;>;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.registers 1
.line 1
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Landroidx/lifecycle/r;->a:Ljava/util/HashMap;
.line 2
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Landroidx/lifecycle/r;->b:Ljava/util/HashMap;
return-void
.end method
.method public static a(Ljava/lang/reflect/Constructor;Ljava/lang/Object;)Landroidx/lifecycle/f;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Constructor<",
"+",
"Landroidx/lifecycle/f;",
">;",
"Ljava/lang/Object;",
")",
"Landroidx/lifecycle/f;"
}
.end annotation
const/4 v0, 0x1
:try_start_1
new-array v0, v0, [Ljava/lang/Object;
const/4 v1, 0x0
aput-object p1, v0, v1
.line 1
invoke-virtual {p0, v0}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Landroidx/lifecycle/f;
:try_end_c
.catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_c} :catch_1b
.catch Ljava/lang/InstantiationException; {:try_start_1 .. :try_end_c} :catch_14
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_1 .. :try_end_c} :catch_d
return-object p0
:catch_d
move-exception p0
.line 2
new-instance p1, Ljava/lang/RuntimeException;
invoke-direct {p1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw p1
:catch_14
move-exception p0
.line 3
new-instance p1, Ljava/lang/RuntimeException;
invoke-direct {p1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw p1
:catch_1b
move-exception p0
.line 4
new-instance p1, Ljava/lang/RuntimeException;
invoke-direct {p1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw p1
.end method
.method public static b(Ljava/lang/String;)Ljava/lang/String;
.registers 4
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "."
const-string v2, "_"
invoke-virtual {p0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "_LifecycleAdapter"
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static c(Ljava/lang/Class;)I
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)I"
}
.end annotation
.line 1
sget-object v0, Landroidx/lifecycle/r;->a: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/Integer;
if-eqz v0, :cond_f
.line 2
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result p0
return p0
.line 3
:cond_f
const-class v0, Landroidx/lifecycle/m;
invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
move-result-object v1
const/4 v2, 0x1
if-nez v1, :cond_1a
goto/16 :goto_120
:cond_1a
const/4 v1, 0x0
const/4 v3, 0x0
.line 4
:try_start_1c
invoke-virtual {p0}, Ljava/lang/Class;->getPackage()Ljava/lang/Package;
move-result-object v4
.line 5
invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
move-result-object v5
if-eqz v4, :cond_2b
.line 6
invoke-virtual {v4}, Ljava/lang/Package;->getName()Ljava/lang/String;
move-result-object v4
goto :goto_2d
:cond_2b
const-string v4, ""
.line 7
:goto_2d
invoke-virtual {v4}, Ljava/lang/String;->isEmpty()Z
move-result v6
if-eqz v6, :cond_34
goto :goto_3d
.line 8
:cond_34
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v6
add-int/2addr v6, v2
invoke-virtual {v5, v6}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v5
.line 9
:goto_3d
invoke-static {v5}, Landroidx/lifecycle/r;->b(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
.line 10
invoke-virtual {v4}, Ljava/lang/String;->isEmpty()Z
move-result v6
if-eqz v6, :cond_48
goto :goto_5c
:cond_48
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, "."
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 11
:goto_5c
invoke-static {v5}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v4
new-array v5, v2, [Ljava/lang/Class;
aput-object p0, v5, v3
.line 12
invoke-virtual {v4, v5}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v4
.line 13
invoke-virtual {v4}, Ljava/lang/reflect/AccessibleObject;->isAccessible()Z
move-result v5
if-nez v5, :cond_7a
.line 14
invoke-virtual {v4, v2}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V
:try_end_71
.catch Ljava/lang/ClassNotFoundException; {:try_start_1c .. :try_end_71} :catch_79
.catch Ljava/lang/NoSuchMethodException; {:try_start_1c .. :try_end_71} :catch_72
goto :goto_7a
:catch_72
move-exception p0
.line 15
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v0
:catch_79
move-object v4, v1
:cond_7a
:goto_7a
if-eqz v4, :cond_87
.line 16
sget-object v0, Landroidx/lifecycle/r;->b:Ljava/util/HashMap;
.line 17
invoke-static {v4}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
.line 18
invoke-virtual {v0, p0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto/16 :goto_11f
.line 19
:cond_87
sget-object v4, Landroidx/lifecycle/b;->c:Landroidx/lifecycle/b;
.line 20
iget-object v5, v4, Landroidx/lifecycle/b;->b:Ljava/util/HashMap;
invoke-virtual {v5, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/lang/Boolean;
if-eqz v5, :cond_98
.line 21
invoke-virtual {v5}, Ljava/lang/Boolean;->booleanValue()Z
move-result v4
goto :goto_bc
.line 22
:cond_98
:try_start_98
invoke-virtual {p0}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v5
:try_end_9c
.catch Ljava/lang/NoClassDefFoundError; {:try_start_98 .. :try_end_9c} :catch_12a
.line 23
array-length v6, v5
const/4 v7, 0x0
:goto_9e
if-ge v7, v6, :cond_b4
aget-object v8, v5, v7
.line 24
const-class v9, Landroidx/lifecycle/w;
invoke-virtual {v8, v9}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v8
check-cast v8, Landroidx/lifecycle/w;
if-eqz v8, :cond_b1
.line 25
invoke-virtual {v4, p0, v5}, Landroidx/lifecycle/b;->a(Ljava/lang/Class;[Ljava/lang/reflect/Method;)Landroidx/lifecycle/b$a;
const/4 v4, 0x1
goto :goto_bc
:cond_b1
add-int/lit8 v7, v7, 0x1
goto :goto_9e
.line 26
:cond_b4
iget-object v4, v4, Landroidx/lifecycle/b;->b:Ljava/util/HashMap;
sget-object v5, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-virtual {v4, p0, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
const/4 v4, 0x0
:goto_bc
if-eqz v4, :cond_bf
goto :goto_120
.line 27
:cond_bf
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v4
if-eqz v4, :cond_cd
.line 28
invoke-virtual {v0, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_cd
const/4 v5, 0x1
goto :goto_ce
:cond_cd
const/4 v5, 0x0
:goto_ce
if-eqz v5, :cond_e4
.line 29
invoke-static {v4}, Landroidx/lifecycle/r;->c(Ljava/lang/Class;)I
move-result v1
if-ne v1, v2, :cond_d7
goto :goto_120
.line 30
:cond_d7
new-instance v1, Ljava/util/ArrayList;
sget-object v5, Landroidx/lifecycle/r;->b:Ljava/util/HashMap;
invoke-virtual {v5, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/util/Collection;
invoke-direct {v1, v4}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
.line 31
:cond_e4
invoke-virtual {p0}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object v4
array-length v5, v4
const/4 v6, 0x0
:goto_ea
if-ge v6, v5, :cond_118
aget-object v7, v4, v6
if-eqz v7, :cond_f8
.line 32
invoke-virtual {v0, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v8
if-eqz v8, :cond_f8
const/4 v8, 0x1
goto :goto_f9
:cond_f8
const/4 v8, 0x0
:goto_f9
if-nez v8, :cond_fc
goto :goto_115
.line 33
:cond_fc
invoke-static {v7}, Landroidx/lifecycle/r;->c(Ljava/lang/Class;)I
move-result v8
if-ne v8, v2, :cond_103
goto :goto_120
:cond_103
if-nez v1, :cond_10a
.line 34
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 35
:cond_10a
sget-object v8, Landroidx/lifecycle/r;->b:Ljava/util/HashMap;
invoke-virtual {v8, v7}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/util/Collection;
invoke-interface {v1, v7}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
:goto_115
add-int/lit8 v6, v6, 0x1
goto :goto_ea
:cond_118
if-eqz v1, :cond_120
.line 36
sget-object v0, Landroidx/lifecycle/r;->b:Ljava/util/HashMap;
invoke-virtual {v0, p0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:goto_11f
const/4 v2, 0x2
.line 37
:cond_120
:goto_120
sget-object v0, Landroidx/lifecycle/r;->a:Ljava/util/HashMap;
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v0, p0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return v2
:catch_12a
move-exception p0
.line 38
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "The observer class has some methods that use newer APIs which are not available in the current OS version. Lifecycles cannot access even other methods so you should make sure that your observer classes only access framework classes that are available in your min API level OR use lifecycle:compiler annotation processor."
invoke-direct {v0, v1, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method