* Decompile and recreate Soul Browser v1.4.85 with APK CI builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix CI build: include bundled google.jks and remove PR trigger The apktool build failed in CI because app/unknown/.../google.jks was excluded by the *.jks gitignore rule. Whitelist app-bundled JKS files and commit the missing resource. Also remove the redundant pull_request workflow trigger. Co-authored-by: KaKi87 <KaKi87@pm.me> * Change package ID to com.github.kaki87.soulbrowser Rename the application ID so the rebuilt APK can be installed alongside the original Soul Browser from Google Play. - Update AndroidManifest package, permissions, providers, and actions - Update R class references in smali (com/github/kaki87/soulbrowser/R) - Update shortcuts.xml targetPackage - Rename app label to "Soul Rebuild" for easy identification Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install compatibility: remove split APK metadata and bundle native libs The rebuilt APK still declared requiredSplitTypes and Play Store split metadata, causing Android to reject standalone installs as incompatible. - Remove requiredSplitTypes and split-related manifest meta-data - Merge native libs from all ABI splits with uncompressed storage - Page-align before signing for extractNativeLibs=false - Add .so to apktool doNotCompress list Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install failure: use apksigner v2/v3 and bundle arm64 native libs Target SDK 36 requires APK Signature Scheme v2+, but jarsigner only produces v1 signatures, causing Android to reject the install. - Sign with apksigner (v1+v2+v3) instead of jarsigner - Add arm64-v8a native libraries from universal Soul Browser 1.4.79 - Set extractNativeLibs=true for reliable sideload installs - Commit stable debug keystore for consistent signatures across builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Add committed debug keystore for consistent APK signatures Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix startup crash: use original classes2.dex desugar libraries Apktool recompiles smali_classes2 into a broken classes2.dex, causing ClassNotFoundException for j$.com.android.tools.r8.a at ML Kit init. Inject the original classes2.dex (Java 8+ desugar libs) after apktool build instead of using the recompiled version. Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix missing drawable resources from density split APKs The base APK is an app bundle module; density-specific drawables like seek_thumb_nor_b live in config.xhdpi.apk and were missing after rebuild, causing Resources$NotFoundException at runtime. - Merge non-9-patch resources from split APKs before apktool build - Sync public.xml IDs from R smali only when backing files exist - Add 713 density-specific resource IDs to public.xml Co-authored-by: KaKi87 <KaKi87@pm.me> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
988 lines
19 KiB
Smali
988 lines
19 KiB
Smali
.class public final Landroidx/lifecycle/Lifecycling;
|
|
.super Ljava/lang/Object;
|
|
.source "SourceFile"
|
|
|
|
|
|
# annotations
|
|
.annotation build Landroidx/annotation/RestrictTo;
|
|
.end annotation
|
|
|
|
.annotation runtime Lkotlin/Metadata;
|
|
d1 = {
|
|
"\u0000\n\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\u0008\u00c7\u0002\u0018\u00002\u00020\u0001\u00a8\u0006\u0002"
|
|
}
|
|
d2 = {
|
|
"Landroidx/lifecycle/Lifecycling;",
|
|
"",
|
|
"lifecycle-common"
|
|
}
|
|
k = 0x1
|
|
mv = {
|
|
0x1,
|
|
0x8,
|
|
0x0
|
|
}
|
|
xi = 0x30
|
|
.end annotation
|
|
|
|
|
|
# static fields
|
|
.field public static final a:Ljava/util/HashMap;
|
|
|
|
.field public static final b:Ljava/util/HashMap;
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 1
|
|
|
|
.line 1
|
|
new-instance v0, Ljava/util/HashMap;
|
|
|
|
.line 2
|
|
.line 3
|
|
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
|
|
|
|
.line 4
|
|
.line 5
|
|
.line 6
|
|
sput-object v0, Landroidx/lifecycle/Lifecycling;->a:Ljava/util/HashMap;
|
|
|
|
.line 7
|
|
.line 8
|
|
new-instance v0, Ljava/util/HashMap;
|
|
|
|
.line 9
|
|
.line 10
|
|
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
|
|
|
|
.line 11
|
|
.line 12
|
|
.line 13
|
|
sput-object v0, Landroidx/lifecycle/Lifecycling;->b:Ljava/util/HashMap;
|
|
|
|
.line 14
|
|
.line 15
|
|
return-void
|
|
.end method
|
|
|
|
.method public static a(Ljava/lang/reflect/Constructor;Landroidx/lifecycle/LifecycleObserver;)Landroidx/lifecycle/GeneratedAdapter;
|
|
.locals 2
|
|
|
|
.line 1
|
|
const/4 v0, 0x1
|
|
|
|
.line 2
|
|
:try_start_0
|
|
new-array v0, v0, [Ljava/lang/Object;
|
|
|
|
.line 3
|
|
.line 4
|
|
const/4 v1, 0x0
|
|
|
|
.line 5
|
|
aput-object p1, v0, v1
|
|
|
|
.line 6
|
|
.line 7
|
|
invoke-virtual {p0, v0}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 8
|
|
.line 9
|
|
.line 10
|
|
move-result-object p0
|
|
|
|
.line 11
|
|
const-string p1, "{\n constructo\u2026tance(`object`)\n }"
|
|
|
|
.line 12
|
|
.line 13
|
|
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 14
|
|
.line 15
|
|
.line 16
|
|
check-cast p0, Landroidx/lifecycle/GeneratedAdapter;
|
|
:try_end_0
|
|
.catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_2
|
|
.catch Ljava/lang/InstantiationException; {:try_start_0 .. :try_end_0} :catch_1
|
|
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
.line 17
|
|
.line 18
|
|
return-object p0
|
|
|
|
.line 19
|
|
:catch_0
|
|
move-exception p0
|
|
|
|
.line 20
|
|
goto :goto_0
|
|
|
|
.line 21
|
|
:catch_1
|
|
move-exception p0
|
|
|
|
.line 22
|
|
goto :goto_1
|
|
|
|
.line 23
|
|
:catch_2
|
|
move-exception p0
|
|
|
|
.line 24
|
|
goto :goto_2
|
|
|
|
.line 25
|
|
:goto_0
|
|
new-instance p1, Ljava/lang/RuntimeException;
|
|
|
|
.line 26
|
|
.line 27
|
|
invoke-direct {p1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
|
|
|
|
.line 28
|
|
.line 29
|
|
.line 30
|
|
throw p1
|
|
|
|
.line 31
|
|
:goto_1
|
|
new-instance p1, Ljava/lang/RuntimeException;
|
|
|
|
.line 32
|
|
.line 33
|
|
invoke-direct {p1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
|
|
|
|
.line 34
|
|
.line 35
|
|
.line 36
|
|
throw p1
|
|
|
|
.line 37
|
|
:goto_2
|
|
new-instance p1, Ljava/lang/RuntimeException;
|
|
|
|
.line 38
|
|
.line 39
|
|
invoke-direct {p1, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
|
|
|
|
.line 40
|
|
.line 41
|
|
.line 42
|
|
throw p1
|
|
.end method
|
|
|
|
.method public static final b(Ljava/lang/String;)Ljava/lang/String;
|
|
.locals 3
|
|
|
|
.line 1
|
|
const-string v0, "className"
|
|
|
|
.line 2
|
|
.line 3
|
|
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 4
|
|
.line 5
|
|
.line 6
|
|
new-instance v0, Ljava/lang/StringBuilder;
|
|
|
|
.line 7
|
|
.line 8
|
|
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
.line 9
|
|
.line 10
|
|
.line 11
|
|
const-string v1, "."
|
|
|
|
.line 12
|
|
.line 13
|
|
const-string v2, "_"
|
|
|
|
.line 14
|
|
.line 15
|
|
invoke-static {p0, v1, v2}, Lkotlin/text/StringsKt;->E(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
.line 16
|
|
.line 17
|
|
.line 18
|
|
move-result-object p0
|
|
|
|
.line 19
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
.line 20
|
|
.line 21
|
|
.line 22
|
|
const-string p0, "_LifecycleAdapter"
|
|
|
|
.line 23
|
|
.line 24
|
|
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
.line 25
|
|
.line 26
|
|
.line 27
|
|
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
.line 28
|
|
.line 29
|
|
.line 30
|
|
move-result-object p0
|
|
|
|
.line 31
|
|
return-object p0
|
|
.end method
|
|
|
|
.method public static c(Ljava/lang/Class;)I
|
|
.locals 13
|
|
|
|
.line 1
|
|
sget-object v0, Landroidx/lifecycle/Lifecycling;->a:Ljava/util/HashMap;
|
|
|
|
.line 2
|
|
.line 3
|
|
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 4
|
|
.line 5
|
|
.line 6
|
|
move-result-object v1
|
|
|
|
.line 7
|
|
check-cast v1, Ljava/lang/Integer;
|
|
|
|
.line 8
|
|
.line 9
|
|
if-eqz v1, :cond_0
|
|
|
|
.line 10
|
|
.line 11
|
|
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
|
|
|
|
.line 12
|
|
.line 13
|
|
.line 14
|
|
move-result p0
|
|
|
|
.line 15
|
|
return p0
|
|
|
|
.line 16
|
|
:cond_0
|
|
invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
|
|
|
|
.line 17
|
|
.line 18
|
|
.line 19
|
|
move-result-object v1
|
|
|
|
.line 20
|
|
const/4 v2, 0x1
|
|
|
|
.line 21
|
|
if-nez v1, :cond_1
|
|
|
|
.line 22
|
|
.line 23
|
|
goto/16 :goto_b
|
|
|
|
.line 24
|
|
.line 25
|
|
:cond_1
|
|
const/4 v1, 0x0
|
|
|
|
.line 26
|
|
const/4 v3, 0x0
|
|
|
|
.line 27
|
|
:try_start_0
|
|
invoke-virtual {p0}, Ljava/lang/Class;->getPackage()Ljava/lang/Package;
|
|
|
|
.line 28
|
|
.line 29
|
|
.line 30
|
|
move-result-object v4
|
|
|
|
.line 31
|
|
invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
|
|
|
|
.line 32
|
|
.line 33
|
|
.line 34
|
|
move-result-object v5
|
|
|
|
.line 35
|
|
if-eqz v4, :cond_2
|
|
|
|
.line 36
|
|
.line 37
|
|
invoke-virtual {v4}, Ljava/lang/Package;->getName()Ljava/lang/String;
|
|
|
|
.line 38
|
|
.line 39
|
|
.line 40
|
|
move-result-object v4
|
|
|
|
.line 41
|
|
goto :goto_0
|
|
|
|
.line 42
|
|
:cond_2
|
|
const-string v4, ""
|
|
|
|
.line 43
|
|
.line 44
|
|
:goto_0
|
|
const-string v6, "fullPackage"
|
|
|
|
.line 45
|
|
.line 46
|
|
invoke-static {v4, v6}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 47
|
|
.line 48
|
|
.line 49
|
|
invoke-virtual {v4}, Ljava/lang/String;->length()I
|
|
|
|
.line 50
|
|
.line 51
|
|
.line 52
|
|
move-result v6
|
|
|
|
.line 53
|
|
if-nez v6, :cond_3
|
|
|
|
.line 54
|
|
.line 55
|
|
goto :goto_1
|
|
|
|
.line 56
|
|
:cond_3
|
|
const-string v6, "name"
|
|
|
|
.line 57
|
|
.line 58
|
|
invoke-static {v5, v6}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 59
|
|
.line 60
|
|
.line 61
|
|
invoke-virtual {v4}, Ljava/lang/String;->length()I
|
|
|
|
.line 62
|
|
.line 63
|
|
.line 64
|
|
move-result v6
|
|
|
|
.line 65
|
|
add-int/2addr v6, v2
|
|
|
|
.line 66
|
|
invoke-virtual {v5, v6}, Ljava/lang/String;->substring(I)Ljava/lang/String;
|
|
|
|
.line 67
|
|
.line 68
|
|
.line 69
|
|
move-result-object v5
|
|
|
|
.line 70
|
|
const-string v6, "this as java.lang.String).substring(startIndex)"
|
|
|
|
.line 71
|
|
.line 72
|
|
invoke-static {v5, v6}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 73
|
|
.line 74
|
|
.line 75
|
|
:goto_1
|
|
const-string v6, "if (fullPackage.isEmpty(\u2026g(fullPackage.length + 1)"
|
|
|
|
.line 76
|
|
.line 77
|
|
invoke-static {v5, v6}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 78
|
|
.line 79
|
|
.line 80
|
|
invoke-static {v5}, Landroidx/lifecycle/Lifecycling;->b(Ljava/lang/String;)Ljava/lang/String;
|
|
|
|
.line 81
|
|
.line 82
|
|
.line 83
|
|
move-result-object v5
|
|
|
|
.line 84
|
|
invoke-virtual {v4}, Ljava/lang/String;->length()I
|
|
|
|
.line 85
|
|
.line 86
|
|
.line 87
|
|
move-result v6
|
|
|
|
.line 88
|
|
if-nez v6, :cond_4
|
|
|
|
.line 89
|
|
.line 90
|
|
goto :goto_2
|
|
|
|
.line 91
|
|
:cond_4
|
|
new-instance v6, Ljava/lang/StringBuilder;
|
|
|
|
.line 92
|
|
.line 93
|
|
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
|
|
|
|
.line 94
|
|
.line 95
|
|
.line 96
|
|
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
.line 97
|
|
.line 98
|
|
.line 99
|
|
const/16 v4, 0x2e
|
|
|
|
.line 100
|
|
.line 101
|
|
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
|
|
|
|
.line 102
|
|
.line 103
|
|
.line 104
|
|
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
|
|
|
|
.line 105
|
|
.line 106
|
|
.line 107
|
|
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
|
|
|
|
.line 108
|
|
.line 109
|
|
.line 110
|
|
move-result-object v5
|
|
|
|
.line 111
|
|
:goto_2
|
|
invoke-static {v5}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
|
|
|
|
.line 112
|
|
.line 113
|
|
.line 114
|
|
move-result-object v4
|
|
|
|
.line 115
|
|
const-string v5, "null cannot be cast to non-null type java.lang.Class<out androidx.lifecycle.GeneratedAdapter>"
|
|
|
|
.line 116
|
|
.line 117
|
|
invoke-static {v4, v5}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 118
|
|
.line 119
|
|
.line 120
|
|
new-array v5, v2, [Ljava/lang/Class;
|
|
|
|
.line 121
|
|
.line 122
|
|
aput-object p0, v5, v1
|
|
|
|
.line 123
|
|
.line 124
|
|
invoke-virtual {v4, v5}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
|
|
|
|
.line 125
|
|
.line 126
|
|
.line 127
|
|
move-result-object v4
|
|
|
|
.line 128
|
|
invoke-virtual {v4}, Ljava/lang/reflect/AccessibleObject;->isAccessible()Z
|
|
|
|
.line 129
|
|
.line 130
|
|
.line 131
|
|
move-result v5
|
|
|
|
.line 132
|
|
if-nez v5, :cond_5
|
|
|
|
.line 133
|
|
.line 134
|
|
invoke-virtual {v4, v2}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V
|
|
:try_end_0
|
|
.catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_1
|
|
.catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_0} :catch_0
|
|
|
|
.line 135
|
|
.line 136
|
|
.line 137
|
|
goto :goto_3
|
|
|
|
.line 138
|
|
:catch_0
|
|
move-exception p0
|
|
|
|
.line 139
|
|
new-instance v0, Ljava/lang/RuntimeException;
|
|
|
|
.line 140
|
|
.line 141
|
|
invoke-direct {v0, p0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
|
|
|
|
.line 142
|
|
.line 143
|
|
.line 144
|
|
throw v0
|
|
|
|
.line 145
|
|
:catch_1
|
|
move-object v4, v3
|
|
|
|
.line 146
|
|
:cond_5
|
|
:goto_3
|
|
const/4 v5, 0x2
|
|
|
|
.line 147
|
|
sget-object v6, Landroidx/lifecycle/Lifecycling;->b:Ljava/util/HashMap;
|
|
|
|
.line 148
|
|
.line 149
|
|
if-eqz v4, :cond_6
|
|
|
|
.line 150
|
|
.line 151
|
|
invoke-static {v4}, Lkotlin/collections/CollectionsKt;->listOf(Ljava/lang/Object;)Ljava/util/List;
|
|
|
|
.line 152
|
|
.line 153
|
|
.line 154
|
|
move-result-object v1
|
|
|
|
.line 155
|
|
invoke-virtual {v6, p0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 156
|
|
.line 157
|
|
.line 158
|
|
:goto_4
|
|
move v2, v5
|
|
|
|
.line 159
|
|
goto/16 :goto_b
|
|
|
|
.line 160
|
|
.line 161
|
|
:cond_6
|
|
sget-object v4, Landroidx/lifecycle/ClassesInfoCache;->c:Landroidx/lifecycle/ClassesInfoCache;
|
|
|
|
.line 162
|
|
.line 163
|
|
iget-object v7, v4, Landroidx/lifecycle/ClassesInfoCache;->b:Ljava/util/HashMap;
|
|
|
|
.line 164
|
|
.line 165
|
|
invoke-virtual {v7, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 166
|
|
.line 167
|
|
.line 168
|
|
move-result-object v8
|
|
|
|
.line 169
|
|
check-cast v8, Ljava/lang/Boolean;
|
|
|
|
.line 170
|
|
.line 171
|
|
if-eqz v8, :cond_7
|
|
|
|
.line 172
|
|
.line 173
|
|
invoke-virtual {v8}, Ljava/lang/Boolean;->booleanValue()Z
|
|
|
|
.line 174
|
|
.line 175
|
|
.line 176
|
|
move-result v4
|
|
|
|
.line 177
|
|
goto :goto_6
|
|
|
|
.line 178
|
|
:cond_7
|
|
:try_start_1
|
|
invoke-virtual {p0}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
|
|
|
|
.line 179
|
|
.line 180
|
|
.line 181
|
|
move-result-object v8
|
|
:try_end_1
|
|
.catch Ljava/lang/NoClassDefFoundError; {:try_start_1 .. :try_end_1} :catch_2
|
|
|
|
.line 182
|
|
array-length v9, v8
|
|
|
|
.line 183
|
|
move v10, v1
|
|
|
|
.line 184
|
|
:goto_5
|
|
if-ge v10, v9, :cond_9
|
|
|
|
.line 185
|
|
.line 186
|
|
aget-object v11, v8, v10
|
|
|
|
.line 187
|
|
.line 188
|
|
const-class v12, Landroidx/lifecycle/OnLifecycleEvent;
|
|
|
|
.line 189
|
|
.line 190
|
|
invoke-virtual {v11, v12}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
|
|
|
|
.line 191
|
|
.line 192
|
|
.line 193
|
|
move-result-object v11
|
|
|
|
.line 194
|
|
check-cast v11, Landroidx/lifecycle/OnLifecycleEvent;
|
|
|
|
.line 195
|
|
.line 196
|
|
if-eqz v11, :cond_8
|
|
|
|
.line 197
|
|
.line 198
|
|
invoke-virtual {v4, p0, v8}, Landroidx/lifecycle/ClassesInfoCache;->a(Ljava/lang/Class;[Ljava/lang/reflect/Method;)Landroidx/lifecycle/ClassesInfoCache$CallbackInfo;
|
|
|
|
.line 199
|
|
.line 200
|
|
.line 201
|
|
move v4, v2
|
|
|
|
.line 202
|
|
goto :goto_6
|
|
|
|
.line 203
|
|
:cond_8
|
|
add-int/lit8 v10, v10, 0x1
|
|
|
|
.line 204
|
|
.line 205
|
|
goto :goto_5
|
|
|
|
.line 206
|
|
:cond_9
|
|
sget-object v4, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
|
|
|
|
.line 207
|
|
.line 208
|
|
invoke-virtual {v7, p0, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 209
|
|
.line 210
|
|
.line 211
|
|
move v4, v1
|
|
|
|
.line 212
|
|
:goto_6
|
|
if-eqz v4, :cond_a
|
|
|
|
.line 213
|
|
.line 214
|
|
goto/16 :goto_b
|
|
|
|
.line 215
|
|
.line 216
|
|
:cond_a
|
|
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
|
|
|
|
.line 217
|
|
.line 218
|
|
.line 219
|
|
move-result-object v4
|
|
|
|
.line 220
|
|
const-class v7, Landroidx/lifecycle/LifecycleObserver;
|
|
|
|
.line 221
|
|
.line 222
|
|
if-eqz v4, :cond_b
|
|
|
|
.line 223
|
|
.line 224
|
|
invoke-virtual {v7, v4}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
|
|
|
|
.line 225
|
|
.line 226
|
|
.line 227
|
|
move-result v8
|
|
|
|
.line 228
|
|
if-eqz v8, :cond_b
|
|
|
|
.line 229
|
|
.line 230
|
|
move v8, v2
|
|
|
|
.line 231
|
|
goto :goto_7
|
|
|
|
.line 232
|
|
:cond_b
|
|
move v8, v1
|
|
|
|
.line 233
|
|
:goto_7
|
|
if-eqz v8, :cond_d
|
|
|
|
.line 234
|
|
.line 235
|
|
const-string v3, "superclass"
|
|
|
|
.line 236
|
|
.line 237
|
|
invoke-static {v4, v3}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 238
|
|
.line 239
|
|
.line 240
|
|
invoke-static {v4}, Landroidx/lifecycle/Lifecycling;->c(Ljava/lang/Class;)I
|
|
|
|
.line 241
|
|
.line 242
|
|
.line 243
|
|
move-result v3
|
|
|
|
.line 244
|
|
if-ne v3, v2, :cond_c
|
|
|
|
.line 245
|
|
.line 246
|
|
goto :goto_b
|
|
|
|
.line 247
|
|
:cond_c
|
|
new-instance v3, Ljava/util/ArrayList;
|
|
|
|
.line 248
|
|
.line 249
|
|
invoke-virtual {v6, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 250
|
|
.line 251
|
|
.line 252
|
|
move-result-object v4
|
|
|
|
.line 253
|
|
invoke-static {v4}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
|
|
|
|
.line 254
|
|
.line 255
|
|
.line 256
|
|
check-cast v4, Ljava/util/Collection;
|
|
|
|
.line 257
|
|
.line 258
|
|
invoke-direct {v3, v4}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
|
|
|
|
.line 259
|
|
.line 260
|
|
.line 261
|
|
:cond_d
|
|
invoke-virtual {p0}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
|
|
|
|
.line 262
|
|
.line 263
|
|
.line 264
|
|
move-result-object v4
|
|
|
|
.line 265
|
|
const-string v8, "klass.interfaces"
|
|
|
|
.line 266
|
|
.line 267
|
|
invoke-static {v4, v8}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 268
|
|
.line 269
|
|
.line 270
|
|
array-length v8, v4
|
|
|
|
.line 271
|
|
move v9, v1
|
|
|
|
.line 272
|
|
:goto_8
|
|
if-ge v9, v8, :cond_12
|
|
|
|
.line 273
|
|
.line 274
|
|
aget-object v10, v4, v9
|
|
|
|
.line 275
|
|
.line 276
|
|
if-eqz v10, :cond_e
|
|
|
|
.line 277
|
|
.line 278
|
|
invoke-virtual {v7, v10}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
|
|
|
|
.line 279
|
|
.line 280
|
|
.line 281
|
|
move-result v11
|
|
|
|
.line 282
|
|
if-eqz v11, :cond_e
|
|
|
|
.line 283
|
|
.line 284
|
|
move v11, v2
|
|
|
|
.line 285
|
|
goto :goto_9
|
|
|
|
.line 286
|
|
:cond_e
|
|
move v11, v1
|
|
|
|
.line 287
|
|
:goto_9
|
|
if-nez v11, :cond_f
|
|
|
|
.line 288
|
|
.line 289
|
|
goto :goto_a
|
|
|
|
.line 290
|
|
:cond_f
|
|
const-string v11, "intrface"
|
|
|
|
.line 291
|
|
.line 292
|
|
invoke-static {v10, v11}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 293
|
|
.line 294
|
|
.line 295
|
|
invoke-static {v10}, Landroidx/lifecycle/Lifecycling;->c(Ljava/lang/Class;)I
|
|
|
|
.line 296
|
|
.line 297
|
|
.line 298
|
|
move-result v11
|
|
|
|
.line 299
|
|
if-ne v11, v2, :cond_10
|
|
|
|
.line 300
|
|
.line 301
|
|
goto :goto_b
|
|
|
|
.line 302
|
|
:cond_10
|
|
if-nez v3, :cond_11
|
|
|
|
.line 303
|
|
.line 304
|
|
new-instance v3, Ljava/util/ArrayList;
|
|
|
|
.line 305
|
|
.line 306
|
|
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
.line 307
|
|
.line 308
|
|
.line 309
|
|
:cond_11
|
|
invoke-virtual {v6, v10}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 310
|
|
.line 311
|
|
.line 312
|
|
move-result-object v10
|
|
|
|
.line 313
|
|
invoke-static {v10}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
|
|
|
|
.line 314
|
|
.line 315
|
|
.line 316
|
|
check-cast v10, Ljava/util/Collection;
|
|
|
|
.line 317
|
|
.line 318
|
|
invoke-interface {v3, v10}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
|
|
|
|
.line 319
|
|
.line 320
|
|
.line 321
|
|
:goto_a
|
|
add-int/lit8 v9, v9, 0x1
|
|
|
|
.line 322
|
|
.line 323
|
|
goto :goto_8
|
|
|
|
.line 324
|
|
:cond_12
|
|
if-eqz v3, :cond_13
|
|
|
|
.line 325
|
|
.line 326
|
|
invoke-virtual {v6, p0, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 327
|
|
.line 328
|
|
.line 329
|
|
goto/16 :goto_4
|
|
|
|
.line 330
|
|
.line 331
|
|
:cond_13
|
|
:goto_b
|
|
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
|
|
|
|
.line 332
|
|
.line 333
|
|
.line 334
|
|
move-result-object v1
|
|
|
|
.line 335
|
|
invoke-virtual {v0, p0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
|
|
|
.line 336
|
|
.line 337
|
|
.line 338
|
|
return v2
|
|
|
|
.line 339
|
|
:catch_2
|
|
move-exception p0
|
|
|
|
.line 340
|
|
new-instance v0, Ljava/lang/IllegalArgumentException;
|
|
|
|
.line 341
|
|
.line 342
|
|
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."
|
|
|
|
.line 343
|
|
.line 344
|
|
invoke-direct {v0, v1, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
|
|
|
|
.line 345
|
|
.line 346
|
|
.line 347
|
|
throw v0
|
|
.end method
|