soul-browser/app/smali/androidx/room/RoomOpenHelper.smali
KaKi87 550ddb0413
Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1)
* 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>
2026-08-10 16:07:14 +02:00

1037 lines
20 KiB
Smali

.class public Landroidx/room/RoomOpenHelper;
.super Landroidx/sqlite/db/SupportSQLiteOpenHelper$Callback;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RestrictTo;
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/room/RoomOpenHelper$ValidationResult;,
Landroidx/room/RoomOpenHelper$Delegate;
}
.end annotation
# instance fields
.field public a:Landroidx/room/DatabaseConfiguration;
.field public final b:Landroidx/room/RoomOpenHelper$Delegate;
# direct methods
.method public constructor <init>(Landroidx/room/DatabaseConfiguration;Landroidx/room/RoomOpenHelper$Delegate;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
.line 3
.line 4
iput-object p1, p0, Landroidx/room/RoomOpenHelper;->a:Landroidx/room/DatabaseConfiguration;
.line 5
.line 6
iput-object p2, p0, Landroidx/room/RoomOpenHelper;->b:Landroidx/room/RoomOpenHelper$Delegate;
.line 7
.line 8
return-void
.end method
# virtual methods
.method public final b(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.locals 3
.line 1
const-string v0, "SELECT count(*) FROM sqlite_master WHERE name != \'android_metadata\'"
.line 2
.line 3
invoke-interface {p1, v0}, Landroidx/sqlite/db/SupportSQLiteDatabase;->P(Ljava/lang/String;)Landroid/database/Cursor;
.line 4
.line 5
.line 6
move-result-object v0
.line 7
:try_start_0
invoke-interface {v0}, Landroid/database/Cursor;->moveToFirst()Z
.line 8
.line 9
.line 10
move-result v1
.line 11
const/4 v2, 0x0
.line 12
if-eqz v1, :cond_0
.line 13
.line 14
invoke-interface {v0, v2}, Landroid/database/Cursor;->getInt(I)I
.line 15
.line 16
.line 17
move-result v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 18
if-nez v1, :cond_0
.line 19
.line 20
const/4 v2, 0x1
.line 21
goto :goto_0
.line 22
:catchall_0
move-exception p1
.line 23
goto :goto_2
.line 24
:cond_0
:goto_0
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 25
.line 26
.line 27
iget-object v0, p0, Landroidx/room/RoomOpenHelper;->b:Landroidx/room/RoomOpenHelper$Delegate;
.line 28
.line 29
invoke-virtual {v0, p1}, Landroidx/room/RoomOpenHelper$Delegate;->a(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 30
.line 31
.line 32
if-nez v2, :cond_2
.line 33
.line 34
invoke-virtual {v0, p1}, Landroidx/room/RoomOpenHelper$Delegate;->f(Landroidx/sqlite/db/SupportSQLiteDatabase;)Landroidx/room/RoomOpenHelper$ValidationResult;
.line 35
.line 36
.line 37
move-result-object v1
.line 38
iget-boolean v2, v1, Landroidx/room/RoomOpenHelper$ValidationResult;->a:Z
.line 39
.line 40
if-eqz v2, :cond_1
.line 41
.line 42
goto :goto_1
.line 43
:cond_1
new-instance p1, Ljava/lang/IllegalStateException;
.line 44
.line 45
new-instance v0, Ljava/lang/StringBuilder;
.line 46
.line 47
const-string v2, "Pre-packaged database has an invalid schema: "
.line 48
.line 49
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 50
.line 51
.line 52
iget-object v1, v1, Landroidx/room/RoomOpenHelper$ValidationResult;->b:Ljava/lang/String;
.line 53
.line 54
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 55
.line 56
.line 57
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
.line 58
.line 59
.line 60
move-result-object v0
.line 61
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
.line 62
.line 63
.line 64
throw p1
.line 65
:cond_2
:goto_1
invoke-virtual {p0, p1}, Landroidx/room/RoomOpenHelper;->f(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 66
.line 67
.line 68
invoke-virtual {v0}, Landroidx/room/RoomOpenHelper$Delegate;->c()V
.line 69
.line 70
.line 71
return-void
.line 72
:goto_2
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 73
.line 74
.line 75
throw p1
.end method
.method public final c(Landroidx/sqlite/db/SupportSQLiteDatabase;II)V
.locals 0
.line 1
invoke-virtual {p0, p1, p2, p3}, Landroidx/room/RoomOpenHelper;->e(Landroidx/sqlite/db/SupportSQLiteDatabase;II)V
.line 2
.line 3
.line 4
return-void
.end method
.method public final d(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.locals 5
.line 1
const-string v0, "SELECT 1 FROM sqlite_master WHERE type = \'table\' AND name=\'room_master_table\'"
.line 2
.line 3
invoke-interface {p1, v0}, Landroidx/sqlite/db/SupportSQLiteDatabase;->P(Ljava/lang/String;)Landroid/database/Cursor;
.line 4
.line 5
.line 6
move-result-object v0
.line 7
:try_start_0
invoke-interface {v0}, Landroid/database/Cursor;->moveToFirst()Z
.line 8
.line 9
.line 10
move-result v1
.line 11
const/4 v2, 0x0
.line 12
if-eqz v1, :cond_0
.line 13
.line 14
invoke-interface {v0, v2}, Landroid/database/Cursor;->getInt(I)I
.line 15
.line 16
.line 17
move-result v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 18
if-eqz v1, :cond_0
.line 19
.line 20
const/4 v1, 0x1
.line 21
goto :goto_0
.line 22
:catchall_0
move-exception p1
.line 23
goto :goto_4
.line 24
:cond_0
move v1, v2
.line 25
:goto_0
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 26
.line 27
.line 28
iget-object v0, p0, Landroidx/room/RoomOpenHelper;->b:Landroidx/room/RoomOpenHelper$Delegate;
.line 29
.line 30
const/4 v3, 0x0
.line 31
if-eqz v1, :cond_3
.line 32
.line 33
new-instance v1, Landroidx/sqlite/db/SimpleSQLiteQuery;
.line 34
.line 35
const-string v4, "SELECT identity_hash FROM room_master_table WHERE id = 42 LIMIT 1"
.line 36
.line 37
invoke-direct {v1, v4, v2}, Landroidx/sqlite/db/SimpleSQLiteQuery;-><init>(Ljava/lang/String;I)V
.line 38
.line 39
.line 40
invoke-interface {p1, v1}, Landroidx/sqlite/db/SupportSQLiteDatabase;->f0(Landroidx/sqlite/db/SupportSQLiteQuery;)Landroid/database/Cursor;
.line 41
.line 42
.line 43
move-result-object v1
.line 44
:try_start_1
invoke-interface {v1}, Landroid/database/Cursor;->moveToFirst()Z
.line 45
.line 46
.line 47
move-result v4
.line 48
if-eqz v4, :cond_1
.line 49
.line 50
invoke-interface {v1, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;
.line 51
.line 52
.line 53
move-result-object v2
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
.line 54
goto :goto_1
.line 55
:catchall_1
move-exception p1
.line 56
goto :goto_2
.line 57
:cond_1
move-object v2, v3
.line 58
:goto_1
invoke-interface {v1}, Landroid/database/Cursor;->close()V
.line 59
.line 60
.line 61
const-string v1, "c103703e120ae8cc73c9248622f3cd1e"
.line 62
.line 63
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 64
.line 65
.line 66
move-result v1
.line 67
if-nez v1, :cond_4
.line 68
.line 69
const-string v1, "49f946663a8deb7054212b8adda248c6"
.line 70
.line 71
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
.line 72
.line 73
.line 74
move-result v1
.line 75
if-eqz v1, :cond_2
.line 76
.line 77
goto :goto_3
.line 78
:cond_2
new-instance p1, Ljava/lang/IllegalStateException;
.line 79
.line 80
const-string v0, "Room cannot verify the data integrity. Looks like you\'ve changed schema but forgot to update the version number. You can simply fix this by increasing the version number."
.line 81
.line 82
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
.line 83
.line 84
.line 85
throw p1
.line 86
:goto_2
invoke-interface {v1}, Landroid/database/Cursor;->close()V
.line 87
.line 88
.line 89
throw p1
.line 90
:cond_3
invoke-virtual {v0, p1}, Landroidx/room/RoomOpenHelper$Delegate;->f(Landroidx/sqlite/db/SupportSQLiteDatabase;)Landroidx/room/RoomOpenHelper$ValidationResult;
.line 91
.line 92
.line 93
move-result-object v1
.line 94
iget-boolean v2, v1, Landroidx/room/RoomOpenHelper$ValidationResult;->a:Z
.line 95
.line 96
if-eqz v2, :cond_5
.line 97
.line 98
invoke-virtual {p0, p1}, Landroidx/room/RoomOpenHelper;->f(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 99
.line 100
.line 101
:cond_4
:goto_3
invoke-virtual {v0, p1}, Landroidx/room/RoomOpenHelper$Delegate;->d(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 102
.line 103
.line 104
iput-object v3, p0, Landroidx/room/RoomOpenHelper;->a:Landroidx/room/DatabaseConfiguration;
.line 105
.line 106
return-void
.line 107
:cond_5
new-instance p1, Ljava/lang/IllegalStateException;
.line 108
.line 109
new-instance v0, Ljava/lang/StringBuilder;
.line 110
.line 111
const-string v2, "Pre-packaged database has an invalid schema: "
.line 112
.line 113
invoke-direct {v0, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 114
.line 115
.line 116
iget-object v1, v1, Landroidx/room/RoomOpenHelper$ValidationResult;->b:Ljava/lang/String;
.line 117
.line 118
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 119
.line 120
.line 121
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
.line 122
.line 123
.line 124
move-result-object v0
.line 125
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
.line 126
.line 127
.line 128
throw p1
.line 129
:goto_4
invoke-interface {v0}, Landroid/database/Cursor;->close()V
.line 130
.line 131
.line 132
throw p1
.end method
.method public final e(Landroidx/sqlite/db/SupportSQLiteDatabase;II)V
.locals 11
.line 1
iget-object v0, p0, Landroidx/room/RoomOpenHelper;->a:Landroidx/room/DatabaseConfiguration;
.line 2
.line 3
iget-object v1, p0, Landroidx/room/RoomOpenHelper;->b:Landroidx/room/RoomOpenHelper$Delegate;
.line 4
.line 5
if-eqz v0, :cond_c
.line 6
.line 7
iget-object v0, v0, Landroidx/room/DatabaseConfiguration;->d:Landroidx/room/RoomDatabase$MigrationContainer;
.line 8
.line 9
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
.line 10
.line 11
.line 12
if-ne p2, p3, :cond_0
.line 13
.line 14
sget-object v0, Ljava/util/Collections;->EMPTY_LIST:Ljava/util/List;
.line 15
.line 16
goto/16 :goto_6
.line 17
.line 18
:cond_0
const/4 v2, 0x0
.line 19
const/4 v3, 0x1
.line 20
if-le p3, p2, :cond_1
.line 21
.line 22
move v4, v3
.line 23
goto :goto_0
.line 24
:cond_1
move v4, v2
.line 25
:goto_0
new-instance v5, Ljava/util/ArrayList;
.line 26
.line 27
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
.line 28
.line 29
.line 30
move v6, p2
.line 31
:cond_2
if-eqz v4, :cond_3
.line 32
.line 33
if-ge v6, p3, :cond_9
.line 34
.line 35
goto :goto_1
.line 36
:cond_3
if-le v6, p3, :cond_9
.line 37
.line 38
:goto_1
iget-object v7, v0, Landroidx/room/RoomDatabase$MigrationContainer;->a:Ljava/util/HashMap;
.line 39
.line 40
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
.line 41
.line 42
.line 43
move-result-object v8
.line 44
invoke-virtual {v7, v8}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
.line 45
.line 46
.line 47
move-result-object v7
.line 48
check-cast v7, Ljava/util/TreeMap;
.line 49
.line 50
if-nez v7, :cond_4
.line 51
.line 52
goto :goto_5
.line 53
:cond_4
if-eqz v4, :cond_5
.line 54
.line 55
invoke-virtual {v7}, Ljava/util/TreeMap;->descendingKeySet()Ljava/util/NavigableSet;
.line 56
.line 57
.line 58
move-result-object v8
.line 59
goto :goto_2
.line 60
:cond_5
invoke-virtual {v7}, Ljava/util/TreeMap;->keySet()Ljava/util/Set;
.line 61
.line 62
.line 63
move-result-object v8
.line 64
:goto_2
invoke-interface {v8}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
.line 65
.line 66
.line 67
move-result-object v8
.line 68
:cond_6
invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z
.line 69
.line 70
.line 71
move-result v9
.line 72
if-eqz v9, :cond_8
.line 73
.line 74
invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object;
.line 75
.line 76
.line 77
move-result-object v9
.line 78
check-cast v9, Ljava/lang/Integer;
.line 79
.line 80
invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I
.line 81
.line 82
.line 83
move-result v10
.line 84
if-eqz v4, :cond_7
.line 85
.line 86
if-gt v10, p3, :cond_6
.line 87
.line 88
if-le v10, v6, :cond_6
.line 89
.line 90
goto :goto_3
.line 91
:cond_7
if-lt v10, p3, :cond_6
.line 92
.line 93
if-ge v10, v6, :cond_6
.line 94
.line 95
:goto_3
invoke-virtual {v7, v9}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
.line 96
.line 97
.line 98
move-result-object v6
.line 99
invoke-virtual {v5, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 100
.line 101
.line 102
move v7, v3
.line 103
move v6, v10
.line 104
goto :goto_4
.line 105
:cond_8
move v7, v2
.line 106
:goto_4
if-nez v7, :cond_2
.line 107
.line 108
:goto_5
const/4 v0, 0x0
.line 109
goto :goto_6
.line 110
:cond_9
move-object v0, v5
.line 111
:goto_6
if-eqz v0, :cond_c
.line 112
.line 113
invoke-virtual {v1, p1}, Landroidx/room/RoomOpenHelper$Delegate;->e(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 114
.line 115
.line 116
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
.line 117
.line 118
.line 119
move-result-object p2
.line 120
:goto_7
invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
.line 121
.line 122
.line 123
move-result p3
.line 124
if-eqz p3, :cond_a
.line 125
.line 126
invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
.line 127
.line 128
.line 129
move-result-object p3
.line 130
check-cast p3, Landroidx/room/migration/Migration;
.line 131
.line 132
invoke-virtual {p3, p1}, Landroidx/room/migration/Migration;->a(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 133
.line 134
.line 135
goto :goto_7
.line 136
:cond_a
invoke-virtual {v1, p1}, Landroidx/room/RoomOpenHelper$Delegate;->f(Landroidx/sqlite/db/SupportSQLiteDatabase;)Landroidx/room/RoomOpenHelper$ValidationResult;
.line 137
.line 138
.line 139
move-result-object p2
.line 140
iget-boolean p3, p2, Landroidx/room/RoomOpenHelper$ValidationResult;->a:Z
.line 141
.line 142
if-eqz p3, :cond_b
.line 143
.line 144
invoke-virtual {p0, p1}, Landroidx/room/RoomOpenHelper;->f(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 145
.line 146
.line 147
return-void
.line 148
:cond_b
new-instance p1, Ljava/lang/IllegalStateException;
.line 149
.line 150
new-instance p3, Ljava/lang/StringBuilder;
.line 151
.line 152
const-string v0, "Migration didn\'t properly handle: "
.line 153
.line 154
invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 155
.line 156
.line 157
iget-object p2, p2, Landroidx/room/RoomOpenHelper$ValidationResult;->b:Ljava/lang/String;
.line 158
.line 159
invoke-virtual {p3, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 160
.line 161
.line 162
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
.line 163
.line 164
.line 165
move-result-object p2
.line 166
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
.line 167
.line 168
.line 169
throw p1
.line 170
:cond_c
iget-object v0, p0, Landroidx/room/RoomOpenHelper;->a:Landroidx/room/DatabaseConfiguration;
.line 171
.line 172
if-eqz v0, :cond_f
.line 173
.line 174
if-le p2, p3, :cond_d
.line 175
.line 176
iget-boolean v2, v0, Landroidx/room/DatabaseConfiguration;->i:Z
.line 177
.line 178
if-eqz v2, :cond_d
.line 179
.line 180
goto :goto_8
.line 181
:cond_d
iget-boolean v0, v0, Landroidx/room/DatabaseConfiguration;->h:Z
.line 182
.line 183
if-eqz v0, :cond_e
.line 184
.line 185
const/4 v0, 0x1
.line 186
goto :goto_9
.line 187
:cond_e
:goto_8
const/4 v0, 0x0
.line 188
:goto_9
if-nez v0, :cond_f
.line 189
.line 190
invoke-virtual {v1, p1}, Landroidx/room/RoomOpenHelper$Delegate;->b(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 191
.line 192
.line 193
invoke-virtual {v1, p1}, Landroidx/room/RoomOpenHelper$Delegate;->a(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.line 194
.line 195
.line 196
return-void
.line 197
:cond_f
new-instance p1, Ljava/lang/IllegalStateException;
.line 198
.line 199
new-instance v0, Ljava/lang/StringBuilder;
.line 200
.line 201
const-string v1, "A migration from "
.line 202
.line 203
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 204
.line 205
.line 206
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 207
.line 208
.line 209
const-string p2, " to "
.line 210
.line 211
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 212
.line 213
.line 214
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
.line 215
.line 216
.line 217
const-string p2, " was required but not found. Please provide the necessary Migration path via RoomDatabase.Builder.addMigration(Migration ...) or allow for destructive migrations via one of the RoomDatabase.Builder.fallbackToDestructiveMigration* methods."
.line 218
.line 219
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 220
.line 221
.line 222
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
.line 223
.line 224
.line 225
move-result-object p2
.line 226
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
.line 227
.line 228
.line 229
throw p1
.end method
.method public final f(Landroidx/sqlite/db/SupportSQLiteDatabase;)V
.locals 1
.line 1
const-string v0, "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)"
.line 2
.line 3
invoke-interface {p1, v0}, Landroidx/sqlite/db/SupportSQLiteDatabase;->s(Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \'c103703e120ae8cc73c9248622f3cd1e\')"
.line 7
.line 8
invoke-interface {p1, v0}, Landroidx/sqlite/db/SupportSQLiteDatabase;->s(Ljava/lang/String;)V
.line 9
.line 10
.line 11
return-void
.end method