Files
rr3-apk/smali/androidx/lifecycle/ClassesInfoCache.smali
Daniel Elliott f3960ee359 Add Discord APKTool decompilation (Smali source for modding)
- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
2026-02-18 16:13:44 -08:00

630 lines
16 KiB
Smali

.class final Landroidx/lifecycle/ClassesInfoCache;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;,
Landroidx/lifecycle/ClassesInfoCache$MethodReference;
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
# static fields
.field private static final CALL_TYPE_NO_ARG:I = 0x0
.field private static final CALL_TYPE_PROVIDER:I = 0x1
.field private static final CALL_TYPE_PROVIDER_WITH_EVENT:I = 0x2
.field static sInstance:Landroidx/lifecycle/ClassesInfoCache;
# instance fields
.field private final mCallbackMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/Class<",
"*>;",
"Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;",
">;"
}
.end annotation
.end field
.field private final mHasLifecycleMethods:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Boolean;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 39
new-instance v0, Landroidx/lifecycle/ClassesInfoCache;
invoke-direct {v0}, Landroidx/lifecycle/ClassesInfoCache;-><init>()V
sput-object v0, Landroidx/lifecycle/ClassesInfoCache;->sInstance:Landroidx/lifecycle/ClassesInfoCache;
return-void
.end method
.method public constructor <init>()V
.locals 1
.line 37
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 45
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Landroidx/lifecycle/ClassesInfoCache;->mCallbackMap:Ljava/util/Map;
.line 46
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Landroidx/lifecycle/ClassesInfoCache;->mHasLifecycleMethods:Ljava/util/Map;
return-void
.end method
.method private createInfo(Ljava/lang/Class;[Ljava/lang/reflect/Method;)Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
.locals 11
.param p2 # [Ljava/lang/reflect/Method;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;[",
"Ljava/lang/reflect/Method;",
")",
"Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;"
}
.end annotation
.line 109
invoke-virtual {p1}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
.line 110
new-instance v1, Ljava/util/HashMap;
invoke-direct {v1}, Ljava/util/HashMap;-><init>()V
if-eqz v0, :cond_0
.line 112
invoke-virtual {p0, v0}, Landroidx/lifecycle/ClassesInfoCache;->getInfo(Ljava/lang/Class;)Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
move-result-object v0
if-eqz v0, :cond_0
.line 114
iget-object v0, v0, Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;->mHandlerToEvent:Ljava/util/Map;
invoke-interface {v1, v0}, Ljava/util/Map;->putAll(Ljava/util/Map;)V
.line 118
:cond_0
invoke-virtual {p1}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object v0
.line 119
array-length v2, v0
const/4 v3, 0x0
move v4, v3
:goto_0
if-ge v4, v2, :cond_2
aget-object v5, v0, v4
.line 120
invoke-virtual {p0, v5}, Landroidx/lifecycle/ClassesInfoCache;->getInfo(Ljava/lang/Class;)Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
move-result-object v5
iget-object v5, v5, Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;->mHandlerToEvent:Ljava/util/Map;
.line 121
invoke-interface {v5}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v5
.line 120
invoke-interface {v5}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v5
:goto_1
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_1
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/util/Map$Entry;
.line 122
invoke-interface {v6}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v7
check-cast v7, Landroidx/lifecycle/ClassesInfoCache$MethodReference;
invoke-interface {v6}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroidx/lifecycle/Lifecycle$Event;
invoke-direct {p0, v1, v7, v6, p1}, Landroidx/lifecycle/ClassesInfoCache;->verifyAndPutHandler(Ljava/util/Map;Landroidx/lifecycle/ClassesInfoCache$MethodReference;Landroidx/lifecycle/Lifecycle$Event;Ljava/lang/Class;)V
goto :goto_1
:cond_1
add-int/lit8 v4, v4, 0x1
goto :goto_0
:cond_2
if-eqz p2, :cond_3
goto :goto_2
.line 126
:cond_3
invoke-direct {p0, p1}, Landroidx/lifecycle/ClassesInfoCache;->getDeclaredMethods(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
move-result-object p2
.line 128
:goto_2
array-length v0, p2
move v2, v3
move v4, v2
:goto_3
if-ge v2, v0, :cond_b
aget-object v5, p2, v2
const-class v6, Landroidx/lifecycle/OnLifecycleEvent;
.line 129
invoke-virtual {v5, v6}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v6
check-cast v6, Landroidx/lifecycle/OnLifecycleEvent;
if-nez v6, :cond_4
goto :goto_6
.line 134
:cond_4
invoke-virtual {v5}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v4
.line 136
array-length v7, v4
const/4 v8, 0x1
if-lez v7, :cond_6
const-class v7, Landroidx/lifecycle/LifecycleOwner;
.line 138
aget-object v9, v4, v3
invoke-virtual {v7, v9}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v7
if-eqz v7, :cond_5
move v7, v8
goto :goto_4
.line 139
:cond_5
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "invalid parameter type. Must be one and instanceof LifecycleOwner"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
:cond_6
move v7, v3
.line 143
:goto_4
invoke-interface {v6}, Landroidx/lifecycle/OnLifecycleEvent;->value()Landroidx/lifecycle/Lifecycle$Event;
move-result-object v6
.line 145
array-length v9, v4
const/4 v10, 0x2
if-le v9, v8, :cond_9
const-class v7, Landroidx/lifecycle/Lifecycle$Event;
.line 147
aget-object v9, v4, v8
invoke-virtual {v7, v9}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v7
if-eqz v7, :cond_8
.line 151
sget-object v7, Landroidx/lifecycle/Lifecycle$Event;->ON_ANY:Landroidx/lifecycle/Lifecycle$Event;
if-ne v6, v7, :cond_7
move v7, v10
goto :goto_5
.line 152
:cond_7
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "Second arg is supported only for ON_ANY value"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 148
:cond_8
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "invalid parameter type. second arg must be an event"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 156
:cond_9
:goto_5
array-length v4, v4
if-gt v4, v10, :cond_a
.line 159
new-instance v4, Landroidx/lifecycle/ClassesInfoCache$MethodReference;
invoke-direct {v4, v7, v5}, Landroidx/lifecycle/ClassesInfoCache$MethodReference;-><init>(ILjava/lang/reflect/Method;)V
.line 160
invoke-direct {p0, v1, v4, v6, p1}, Landroidx/lifecycle/ClassesInfoCache;->verifyAndPutHandler(Ljava/util/Map;Landroidx/lifecycle/ClassesInfoCache$MethodReference;Landroidx/lifecycle/Lifecycle$Event;Ljava/lang/Class;)V
move v4, v8
:goto_6
add-int/lit8 v2, v2, 0x1
goto :goto_3
.line 157
:cond_a
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "cannot have more than 2 params"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.line 162
:cond_b
new-instance p2, Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
invoke-direct {p2, v1}, Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;-><init>(Ljava/util/Map;)V
iget-object v0, p0, Landroidx/lifecycle/ClassesInfoCache;->mCallbackMap:Ljava/util/Map;
.line 163
invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v0, p0, Landroidx/lifecycle/ClassesInfoCache;->mHasLifecycleMethods:Ljava/util/Map;
.line 164
invoke-static {v4}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v1
invoke-interface {v0, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-object p2
.end method
.method private getDeclaredMethods(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
.locals 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)[",
"Ljava/lang/reflect/Method;"
}
.end annotation
.line 74
:try_start_0
invoke-virtual {p1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object p1
:try_end_0
.catch Ljava/lang/NoClassDefFoundError; {:try_start_0 .. :try_end_0} :catch_0
return-object p1
:catch_0
move-exception p1
.line 76
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, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
.method private verifyAndPutHandler(Ljava/util/Map;Landroidx/lifecycle/ClassesInfoCache$MethodReference;Landroidx/lifecycle/Lifecycle$Event;Ljava/lang/Class;)V
.locals 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"Landroidx/lifecycle/ClassesInfoCache$MethodReference;",
"Landroidx/lifecycle/Lifecycle$Event;",
">;",
"Landroidx/lifecycle/ClassesInfoCache$MethodReference;",
"Landroidx/lifecycle/Lifecycle$Event;",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
.line 95
invoke-interface {p1, p2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/lifecycle/Lifecycle$Event;
if-eqz v0, :cond_1
if-ne p3, v0, :cond_0
goto :goto_0
.line 97
:cond_0
iget-object p1, p2, Landroidx/lifecycle/ClassesInfoCache$MethodReference;->mMethod:Ljava/lang/reflect/Method;
.line 98
new-instance p2, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Method "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 99
invoke-virtual {p1}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " in "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p4}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " already declared with different @OnLifecycleEvent value: previous value "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p1, ", new value "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p2
:cond_1
:goto_0
if-nez v0, :cond_2
.line 104
invoke-interface {p1, p2, p3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_2
return-void
.end method
# virtual methods
.method public getInfo(Ljava/lang/Class;)Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;"
}
.end annotation
iget-object v0, p0, Landroidx/lifecycle/ClassesInfoCache;->mCallbackMap:Ljava/util/Map;
.line 85
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
if-eqz v0, :cond_0
return-object v0
:cond_0
const/4 v0, 0x0
.line 89
invoke-direct {p0, p1, v0}, Landroidx/lifecycle/ClassesInfoCache;->createInfo(Ljava/lang/Class;[Ljava/lang/reflect/Method;)Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
move-result-object p1
return-object p1
.end method
.method public hasLifecycleMethods(Ljava/lang/Class;)Z
.locals 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
iget-object v0, p0, Landroidx/lifecycle/ClassesInfoCache;->mHasLifecycleMethods:Ljava/util/Map;
.line 49
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Boolean;
if-eqz v0, :cond_0
.line 51
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result p1
return p1
.line 54
:cond_0
invoke-direct {p0, p1}, Landroidx/lifecycle/ClassesInfoCache;->getDeclaredMethods(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
move-result-object v0
.line 55
array-length v1, v0
const/4 v2, 0x0
move v3, v2
:goto_0
if-ge v3, v1, :cond_2
aget-object v4, v0, v3
const-class v5, Landroidx/lifecycle/OnLifecycleEvent;
.line 56
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v4
check-cast v4, Landroidx/lifecycle/OnLifecycleEvent;
if-eqz v4, :cond_1
.line 64
invoke-direct {p0, p1, v0}, Landroidx/lifecycle/ClassesInfoCache;->createInfo(Ljava/lang/Class;[Ljava/lang/reflect/Method;)Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
const/4 p1, 0x1
return p1
:cond_1
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_2
iget-object v0, p0, Landroidx/lifecycle/ClassesInfoCache;->mHasLifecycleMethods:Ljava/util/Map;
sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
.line 68
invoke-interface {v0, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return v2
.end method