* 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>
412 lines
24 KiB
Java
412 lines
24 KiB
Java
package androidx.work.impl;
|
|
|
|
import android.content.Context;
|
|
import android.database.Cursor;
|
|
import android.util.Log;
|
|
import androidx.room.DatabaseConfiguration;
|
|
import androidx.room.InvalidationTracker;
|
|
import androidx.room.RoomDatabase;
|
|
import androidx.room.RoomOpenHelper;
|
|
import androidx.room.util.TableInfo;
|
|
import androidx.sqlite.db.SupportSQLiteDatabase;
|
|
import androidx.sqlite.db.SupportSQLiteOpenHelper;
|
|
import androidx.work.impl.model.DependencyDao;
|
|
import androidx.work.impl.model.DependencyDao_Impl;
|
|
import androidx.work.impl.model.PreferenceDao;
|
|
import androidx.work.impl.model.PreferenceDao_Impl;
|
|
import androidx.work.impl.model.SystemIdInfoDao;
|
|
import androidx.work.impl.model.SystemIdInfoDao_Impl;
|
|
import androidx.work.impl.model.WorkNameDao;
|
|
import androidx.work.impl.model.WorkNameDao_Impl;
|
|
import androidx.work.impl.model.WorkProgressDao;
|
|
import androidx.work.impl.model.WorkProgressDao_Impl;
|
|
import androidx.work.impl.model.WorkSpecDao;
|
|
import androidx.work.impl.model.WorkSpecDao_Impl;
|
|
import androidx.work.impl.model.WorkTagDao;
|
|
import androidx.work.impl.model.WorkTagDao_Impl;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.HashMap;
|
|
import java.util.HashSet;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class WorkDatabase_Impl extends WorkDatabase {
|
|
public static final /* synthetic */ int t = 0;
|
|
public volatile WorkSpecDao_Impl m;
|
|
public volatile DependencyDao_Impl n;
|
|
public volatile WorkTagDao_Impl o;
|
|
public volatile SystemIdInfoDao_Impl p;
|
|
public volatile WorkNameDao_Impl q;
|
|
public volatile WorkProgressDao_Impl r;
|
|
public volatile PreferenceDao_Impl s;
|
|
|
|
@Override // androidx.room.RoomDatabase
|
|
public final InvalidationTracker d() {
|
|
return new InvalidationTracker(this, new HashMap(0), new HashMap(0), "Dependency", "WorkSpec", "WorkTag", "SystemIdInfo", "WorkName", "WorkProgress", "Preference");
|
|
}
|
|
|
|
/* JADX WARN: Type inference failed for: r2v0, types: [androidx.sqlite.db.SupportSQLiteOpenHelper$Configuration$Builder, java.lang.Object] */
|
|
@Override // androidx.room.RoomDatabase
|
|
public final SupportSQLiteOpenHelper e(DatabaseConfiguration databaseConfiguration) {
|
|
RoomOpenHelper roomOpenHelper = new RoomOpenHelper(databaseConfiguration, new RoomOpenHelper.Delegate() { // from class: androidx.work.impl.WorkDatabase_Impl.1
|
|
@Override // androidx.room.RoomOpenHelper.Delegate
|
|
public final void a(SupportSQLiteDatabase supportSQLiteDatabase) {
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS `Dependency` (`work_spec_id` TEXT NOT NULL, `prerequisite_id` TEXT NOT NULL, PRIMARY KEY(`work_spec_id`, `prerequisite_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE , FOREIGN KEY(`prerequisite_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )");
|
|
supportSQLiteDatabase.s("CREATE INDEX IF NOT EXISTS `index_Dependency_work_spec_id` ON `Dependency` (`work_spec_id`)");
|
|
supportSQLiteDatabase.s("CREATE INDEX IF NOT EXISTS `index_Dependency_prerequisite_id` ON `Dependency` (`prerequisite_id`)");
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS `WorkSpec` (`id` TEXT NOT NULL, `state` INTEGER NOT NULL, `worker_class_name` TEXT NOT NULL, `input_merger_class_name` TEXT, `input` BLOB NOT NULL, `output` BLOB NOT NULL, `initial_delay` INTEGER NOT NULL, `interval_duration` INTEGER NOT NULL, `flex_duration` INTEGER NOT NULL, `run_attempt_count` INTEGER NOT NULL, `backoff_policy` INTEGER NOT NULL, `backoff_delay_duration` INTEGER NOT NULL, `period_start_time` INTEGER NOT NULL, `minimum_retention_duration` INTEGER NOT NULL, `schedule_requested_at` INTEGER NOT NULL, `run_in_foreground` INTEGER NOT NULL, `out_of_quota_policy` INTEGER NOT NULL, `required_network_type` INTEGER, `requires_charging` INTEGER NOT NULL, `requires_device_idle` INTEGER NOT NULL, `requires_battery_not_low` INTEGER NOT NULL, `requires_storage_not_low` INTEGER NOT NULL, `trigger_content_update_delay` INTEGER NOT NULL, `trigger_max_content_delay` INTEGER NOT NULL, `content_uri_triggers` BLOB, PRIMARY KEY(`id`))");
|
|
supportSQLiteDatabase.s("CREATE INDEX IF NOT EXISTS `index_WorkSpec_schedule_requested_at` ON `WorkSpec` (`schedule_requested_at`)");
|
|
supportSQLiteDatabase.s("CREATE INDEX IF NOT EXISTS `index_WorkSpec_period_start_time` ON `WorkSpec` (`period_start_time`)");
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS `WorkTag` (`tag` TEXT NOT NULL, `work_spec_id` TEXT NOT NULL, PRIMARY KEY(`tag`, `work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )");
|
|
supportSQLiteDatabase.s("CREATE INDEX IF NOT EXISTS `index_WorkTag_work_spec_id` ON `WorkTag` (`work_spec_id`)");
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS `SystemIdInfo` (`work_spec_id` TEXT NOT NULL, `system_id` INTEGER NOT NULL, PRIMARY KEY(`work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )");
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS `WorkName` (`name` TEXT NOT NULL, `work_spec_id` TEXT NOT NULL, PRIMARY KEY(`name`, `work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )");
|
|
supportSQLiteDatabase.s("CREATE INDEX IF NOT EXISTS `index_WorkName_work_spec_id` ON `WorkName` (`work_spec_id`)");
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS `WorkProgress` (`work_spec_id` TEXT NOT NULL, `progress` BLOB NOT NULL, PRIMARY KEY(`work_spec_id`), FOREIGN KEY(`work_spec_id`) REFERENCES `WorkSpec`(`id`) ON UPDATE CASCADE ON DELETE CASCADE )");
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS `Preference` (`key` TEXT NOT NULL, `long_value` INTEGER, PRIMARY KEY(`key`))");
|
|
supportSQLiteDatabase.s("CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)");
|
|
supportSQLiteDatabase.s("INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'c103703e120ae8cc73c9248622f3cd1e')");
|
|
}
|
|
|
|
@Override // androidx.room.RoomOpenHelper.Delegate
|
|
public final void b(SupportSQLiteDatabase supportSQLiteDatabase) {
|
|
supportSQLiteDatabase.s("DROP TABLE IF EXISTS `Dependency`");
|
|
supportSQLiteDatabase.s("DROP TABLE IF EXISTS `WorkSpec`");
|
|
supportSQLiteDatabase.s("DROP TABLE IF EXISTS `WorkTag`");
|
|
supportSQLiteDatabase.s("DROP TABLE IF EXISTS `SystemIdInfo`");
|
|
supportSQLiteDatabase.s("DROP TABLE IF EXISTS `WorkName`");
|
|
supportSQLiteDatabase.s("DROP TABLE IF EXISTS `WorkProgress`");
|
|
supportSQLiteDatabase.s("DROP TABLE IF EXISTS `Preference`");
|
|
int i = WorkDatabase_Impl.t;
|
|
WorkDatabase_Impl workDatabase_Impl = WorkDatabase_Impl.this;
|
|
List list = workDatabase_Impl.h;
|
|
if (list != null) {
|
|
int size = list.size();
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
((RoomDatabase.Callback) workDatabase_Impl.h.get(i2)).getClass();
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.room.RoomOpenHelper.Delegate
|
|
public final void c() {
|
|
int i = WorkDatabase_Impl.t;
|
|
WorkDatabase_Impl workDatabase_Impl = WorkDatabase_Impl.this;
|
|
List list = workDatabase_Impl.h;
|
|
if (list != null) {
|
|
int size = list.size();
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
((RoomDatabase.Callback) workDatabase_Impl.h.get(i2)).getClass();
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.room.RoomOpenHelper.Delegate
|
|
public final void d(SupportSQLiteDatabase supportSQLiteDatabase) {
|
|
WorkDatabase_Impl workDatabase_Impl = WorkDatabase_Impl.this;
|
|
int i = WorkDatabase_Impl.t;
|
|
workDatabase_Impl.f1623a = supportSQLiteDatabase;
|
|
supportSQLiteDatabase.s("PRAGMA foreign_keys = ON");
|
|
InvalidationTracker invalidationTracker = WorkDatabase_Impl.this.e;
|
|
synchronized (invalidationTracker) {
|
|
try {
|
|
if (invalidationTracker.e) {
|
|
Log.e("ROOM", "Invalidation tracker is initialized twice :/.");
|
|
} else {
|
|
supportSQLiteDatabase.s("PRAGMA temp_store = MEMORY;");
|
|
supportSQLiteDatabase.s("PRAGMA recursive_triggers='ON';");
|
|
supportSQLiteDatabase.s("CREATE TEMP TABLE room_table_modification_log(table_id INTEGER PRIMARY KEY, invalidated INTEGER NOT NULL DEFAULT 0)");
|
|
invalidationTracker.c(supportSQLiteDatabase);
|
|
invalidationTracker.f = supportSQLiteDatabase.x("UPDATE room_table_modification_log SET invalidated = 0 WHERE invalidated = 1 ");
|
|
invalidationTracker.e = true;
|
|
}
|
|
} finally {
|
|
}
|
|
}
|
|
List list = WorkDatabase_Impl.this.h;
|
|
if (list != null) {
|
|
int size = list.size();
|
|
for (int i2 = 0; i2 < size; i2++) {
|
|
((RoomDatabase.Callback) WorkDatabase_Impl.this.h.get(i2)).a(supportSQLiteDatabase);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.room.RoomOpenHelper.Delegate
|
|
public final void e(SupportSQLiteDatabase supportSQLiteDatabase) {
|
|
int i;
|
|
ArrayList arrayList = new ArrayList();
|
|
Cursor P = supportSQLiteDatabase.P("SELECT name FROM sqlite_master WHERE type = 'trigger'");
|
|
while (true) {
|
|
try {
|
|
i = 0;
|
|
if (!P.moveToNext()) {
|
|
break;
|
|
} else {
|
|
arrayList.add(P.getString(0));
|
|
}
|
|
} catch (Throwable th) {
|
|
P.close();
|
|
throw th;
|
|
}
|
|
}
|
|
P.close();
|
|
int size = arrayList.size();
|
|
while (i < size) {
|
|
Object obj = arrayList.get(i);
|
|
i++;
|
|
String str = (String) obj;
|
|
if (str.startsWith("room_fts_content_sync_")) {
|
|
supportSQLiteDatabase.s("DROP TRIGGER IF EXISTS ".concat(str));
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // androidx.room.RoomOpenHelper.Delegate
|
|
public final RoomOpenHelper.ValidationResult f(SupportSQLiteDatabase supportSQLiteDatabase) {
|
|
HashMap hashMap = new HashMap(2);
|
|
hashMap.put("work_spec_id", new TableInfo.Column("work_spec_id", 1, 1, "TEXT", true, null));
|
|
hashMap.put("prerequisite_id", new TableInfo.Column("prerequisite_id", 2, 1, "TEXT", true, null));
|
|
HashSet hashSet = new HashSet(2);
|
|
hashSet.add(new TableInfo.ForeignKey("WorkSpec", "CASCADE", "CASCADE", Arrays.asList("work_spec_id"), Arrays.asList("id")));
|
|
hashSet.add(new TableInfo.ForeignKey("WorkSpec", "CASCADE", "CASCADE", Arrays.asList("prerequisite_id"), Arrays.asList("id")));
|
|
HashSet hashSet2 = new HashSet(2);
|
|
hashSet2.add(new TableInfo.Index("index_Dependency_work_spec_id", false, Arrays.asList("work_spec_id")));
|
|
hashSet2.add(new TableInfo.Index("index_Dependency_prerequisite_id", false, Arrays.asList("prerequisite_id")));
|
|
TableInfo tableInfo = new TableInfo("Dependency", hashMap, hashSet, hashSet2);
|
|
TableInfo a2 = TableInfo.a(supportSQLiteDatabase, "Dependency");
|
|
if (!tableInfo.equals(a2)) {
|
|
return new RoomOpenHelper.ValidationResult("Dependency(androidx.work.impl.model.Dependency).\n Expected:\n" + tableInfo + "\n Found:\n" + a2, false);
|
|
}
|
|
HashMap hashMap2 = new HashMap(25);
|
|
hashMap2.put("id", new TableInfo.Column("id", 1, 1, "TEXT", true, null));
|
|
hashMap2.put("state", new TableInfo.Column("state", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("worker_class_name", new TableInfo.Column("worker_class_name", 0, 1, "TEXT", true, null));
|
|
hashMap2.put("input_merger_class_name", new TableInfo.Column("input_merger_class_name", 0, 1, "TEXT", false, null));
|
|
hashMap2.put("input", new TableInfo.Column("input", 0, 1, "BLOB", true, null));
|
|
hashMap2.put("output", new TableInfo.Column("output", 0, 1, "BLOB", true, null));
|
|
hashMap2.put("initial_delay", new TableInfo.Column("initial_delay", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("interval_duration", new TableInfo.Column("interval_duration", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("flex_duration", new TableInfo.Column("flex_duration", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("run_attempt_count", new TableInfo.Column("run_attempt_count", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("backoff_policy", new TableInfo.Column("backoff_policy", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("backoff_delay_duration", new TableInfo.Column("backoff_delay_duration", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("period_start_time", new TableInfo.Column("period_start_time", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("minimum_retention_duration", new TableInfo.Column("minimum_retention_duration", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("schedule_requested_at", new TableInfo.Column("schedule_requested_at", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("run_in_foreground", new TableInfo.Column("run_in_foreground", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("out_of_quota_policy", new TableInfo.Column("out_of_quota_policy", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("required_network_type", new TableInfo.Column("required_network_type", 0, 1, "INTEGER", false, null));
|
|
hashMap2.put("requires_charging", new TableInfo.Column("requires_charging", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("requires_device_idle", new TableInfo.Column("requires_device_idle", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("requires_battery_not_low", new TableInfo.Column("requires_battery_not_low", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("requires_storage_not_low", new TableInfo.Column("requires_storage_not_low", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("trigger_content_update_delay", new TableInfo.Column("trigger_content_update_delay", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("trigger_max_content_delay", new TableInfo.Column("trigger_max_content_delay", 0, 1, "INTEGER", true, null));
|
|
hashMap2.put("content_uri_triggers", new TableInfo.Column("content_uri_triggers", 0, 1, "BLOB", false, null));
|
|
HashSet hashSet3 = new HashSet(0);
|
|
HashSet hashSet4 = new HashSet(2);
|
|
hashSet4.add(new TableInfo.Index("index_WorkSpec_schedule_requested_at", false, Arrays.asList("schedule_requested_at")));
|
|
hashSet4.add(new TableInfo.Index("index_WorkSpec_period_start_time", false, Arrays.asList("period_start_time")));
|
|
TableInfo tableInfo2 = new TableInfo("WorkSpec", hashMap2, hashSet3, hashSet4);
|
|
TableInfo a3 = TableInfo.a(supportSQLiteDatabase, "WorkSpec");
|
|
if (!tableInfo2.equals(a3)) {
|
|
return new RoomOpenHelper.ValidationResult("WorkSpec(androidx.work.impl.model.WorkSpec).\n Expected:\n" + tableInfo2 + "\n Found:\n" + a3, false);
|
|
}
|
|
HashMap hashMap3 = new HashMap(2);
|
|
hashMap3.put("tag", new TableInfo.Column("tag", 1, 1, "TEXT", true, null));
|
|
hashMap3.put("work_spec_id", new TableInfo.Column("work_spec_id", 2, 1, "TEXT", true, null));
|
|
HashSet hashSet5 = new HashSet(1);
|
|
hashSet5.add(new TableInfo.ForeignKey("WorkSpec", "CASCADE", "CASCADE", Arrays.asList("work_spec_id"), Arrays.asList("id")));
|
|
HashSet hashSet6 = new HashSet(1);
|
|
hashSet6.add(new TableInfo.Index("index_WorkTag_work_spec_id", false, Arrays.asList("work_spec_id")));
|
|
TableInfo tableInfo3 = new TableInfo("WorkTag", hashMap3, hashSet5, hashSet6);
|
|
TableInfo a4 = TableInfo.a(supportSQLiteDatabase, "WorkTag");
|
|
if (!tableInfo3.equals(a4)) {
|
|
return new RoomOpenHelper.ValidationResult("WorkTag(androidx.work.impl.model.WorkTag).\n Expected:\n" + tableInfo3 + "\n Found:\n" + a4, false);
|
|
}
|
|
HashMap hashMap4 = new HashMap(2);
|
|
hashMap4.put("work_spec_id", new TableInfo.Column("work_spec_id", 1, 1, "TEXT", true, null));
|
|
hashMap4.put("system_id", new TableInfo.Column("system_id", 0, 1, "INTEGER", true, null));
|
|
HashSet hashSet7 = new HashSet(1);
|
|
hashSet7.add(new TableInfo.ForeignKey("WorkSpec", "CASCADE", "CASCADE", Arrays.asList("work_spec_id"), Arrays.asList("id")));
|
|
TableInfo tableInfo4 = new TableInfo("SystemIdInfo", hashMap4, hashSet7, new HashSet(0));
|
|
TableInfo a5 = TableInfo.a(supportSQLiteDatabase, "SystemIdInfo");
|
|
if (!tableInfo4.equals(a5)) {
|
|
return new RoomOpenHelper.ValidationResult("SystemIdInfo(androidx.work.impl.model.SystemIdInfo).\n Expected:\n" + tableInfo4 + "\n Found:\n" + a5, false);
|
|
}
|
|
HashMap hashMap5 = new HashMap(2);
|
|
hashMap5.put("name", new TableInfo.Column("name", 1, 1, "TEXT", true, null));
|
|
hashMap5.put("work_spec_id", new TableInfo.Column("work_spec_id", 2, 1, "TEXT", true, null));
|
|
HashSet hashSet8 = new HashSet(1);
|
|
hashSet8.add(new TableInfo.ForeignKey("WorkSpec", "CASCADE", "CASCADE", Arrays.asList("work_spec_id"), Arrays.asList("id")));
|
|
HashSet hashSet9 = new HashSet(1);
|
|
hashSet9.add(new TableInfo.Index("index_WorkName_work_spec_id", false, Arrays.asList("work_spec_id")));
|
|
TableInfo tableInfo5 = new TableInfo("WorkName", hashMap5, hashSet8, hashSet9);
|
|
TableInfo a6 = TableInfo.a(supportSQLiteDatabase, "WorkName");
|
|
if (!tableInfo5.equals(a6)) {
|
|
return new RoomOpenHelper.ValidationResult("WorkName(androidx.work.impl.model.WorkName).\n Expected:\n" + tableInfo5 + "\n Found:\n" + a6, false);
|
|
}
|
|
HashMap hashMap6 = new HashMap(2);
|
|
hashMap6.put("work_spec_id", new TableInfo.Column("work_spec_id", 1, 1, "TEXT", true, null));
|
|
hashMap6.put("progress", new TableInfo.Column("progress", 0, 1, "BLOB", true, null));
|
|
HashSet hashSet10 = new HashSet(1);
|
|
hashSet10.add(new TableInfo.ForeignKey("WorkSpec", "CASCADE", "CASCADE", Arrays.asList("work_spec_id"), Arrays.asList("id")));
|
|
TableInfo tableInfo6 = new TableInfo("WorkProgress", hashMap6, hashSet10, new HashSet(0));
|
|
TableInfo a7 = TableInfo.a(supportSQLiteDatabase, "WorkProgress");
|
|
if (!tableInfo6.equals(a7)) {
|
|
return new RoomOpenHelper.ValidationResult("WorkProgress(androidx.work.impl.model.WorkProgress).\n Expected:\n" + tableInfo6 + "\n Found:\n" + a7, false);
|
|
}
|
|
HashMap hashMap7 = new HashMap(2);
|
|
hashMap7.put("key", new TableInfo.Column("key", 1, 1, "TEXT", true, null));
|
|
hashMap7.put("long_value", new TableInfo.Column("long_value", 0, 1, "INTEGER", false, null));
|
|
TableInfo tableInfo7 = new TableInfo("Preference", hashMap7, new HashSet(0), new HashSet(0));
|
|
TableInfo a8 = TableInfo.a(supportSQLiteDatabase, "Preference");
|
|
if (!tableInfo7.equals(a8)) {
|
|
return new RoomOpenHelper.ValidationResult("Preference(androidx.work.impl.model.Preference).\n Expected:\n" + tableInfo7 + "\n Found:\n" + a8, false);
|
|
}
|
|
return new RoomOpenHelper.ValidationResult(null, true);
|
|
}
|
|
});
|
|
Context context = databaseConfiguration.b;
|
|
?? obj = new Object();
|
|
obj.f1656a = context;
|
|
obj.b = databaseConfiguration.f1609c;
|
|
obj.f1657c = roomOpenHelper;
|
|
return databaseConfiguration.f1608a.a(obj.a());
|
|
}
|
|
|
|
@Override // androidx.work.impl.WorkDatabase
|
|
public final DependencyDao i() {
|
|
DependencyDao_Impl dependencyDao_Impl;
|
|
if (this.n != null) {
|
|
return this.n;
|
|
}
|
|
synchronized (this) {
|
|
try {
|
|
if (this.n == null) {
|
|
this.n = new DependencyDao_Impl(this);
|
|
}
|
|
dependencyDao_Impl = this.n;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return dependencyDao_Impl;
|
|
}
|
|
|
|
@Override // androidx.work.impl.WorkDatabase
|
|
public final PreferenceDao j() {
|
|
PreferenceDao_Impl preferenceDao_Impl;
|
|
if (this.s != null) {
|
|
return this.s;
|
|
}
|
|
synchronized (this) {
|
|
try {
|
|
if (this.s == null) {
|
|
this.s = new PreferenceDao_Impl(this);
|
|
}
|
|
preferenceDao_Impl = this.s;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return preferenceDao_Impl;
|
|
}
|
|
|
|
@Override // androidx.work.impl.WorkDatabase
|
|
public final SystemIdInfoDao k() {
|
|
SystemIdInfoDao_Impl systemIdInfoDao_Impl;
|
|
if (this.p != null) {
|
|
return this.p;
|
|
}
|
|
synchronized (this) {
|
|
try {
|
|
if (this.p == null) {
|
|
this.p = new SystemIdInfoDao_Impl(this);
|
|
}
|
|
systemIdInfoDao_Impl = this.p;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return systemIdInfoDao_Impl;
|
|
}
|
|
|
|
@Override // androidx.work.impl.WorkDatabase
|
|
public final WorkNameDao l() {
|
|
WorkNameDao_Impl workNameDao_Impl;
|
|
if (this.q != null) {
|
|
return this.q;
|
|
}
|
|
synchronized (this) {
|
|
try {
|
|
if (this.q == null) {
|
|
this.q = new WorkNameDao_Impl(this);
|
|
}
|
|
workNameDao_Impl = this.q;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return workNameDao_Impl;
|
|
}
|
|
|
|
@Override // androidx.work.impl.WorkDatabase
|
|
public final WorkProgressDao m() {
|
|
WorkProgressDao_Impl workProgressDao_Impl;
|
|
if (this.r != null) {
|
|
return this.r;
|
|
}
|
|
synchronized (this) {
|
|
try {
|
|
if (this.r == null) {
|
|
this.r = new WorkProgressDao_Impl(this);
|
|
}
|
|
workProgressDao_Impl = this.r;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return workProgressDao_Impl;
|
|
}
|
|
|
|
@Override // androidx.work.impl.WorkDatabase
|
|
public final WorkSpecDao n() {
|
|
WorkSpecDao_Impl workSpecDao_Impl;
|
|
if (this.m != null) {
|
|
return this.m;
|
|
}
|
|
synchronized (this) {
|
|
try {
|
|
if (this.m == null) {
|
|
this.m = new WorkSpecDao_Impl(this);
|
|
}
|
|
workSpecDao_Impl = this.m;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return workSpecDao_Impl;
|
|
}
|
|
|
|
@Override // androidx.work.impl.WorkDatabase
|
|
public final WorkTagDao o() {
|
|
WorkTagDao_Impl workTagDao_Impl;
|
|
if (this.o != null) {
|
|
return this.o;
|
|
}
|
|
synchronized (this) {
|
|
try {
|
|
if (this.o == null) {
|
|
this.o = new WorkTagDao_Impl(this);
|
|
}
|
|
workTagDao_Impl = this.o;
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
return workTagDao_Impl;
|
|
}
|
|
}
|