2020-11-12 02:11:44 +00:00
.class public abstract L androidx/work/impl/WorkDatabase ;
.super L androidx/room/RoomDatabase ;
.source "WorkDatabase.java"
# annotations
.annotation build L androidx/annotation/RestrictTo ;
value = {
.enum L androidx/annotation/RestrictTo$Scope ;-> LIBRARY_GROUP : L androidx/annotation/RestrictTo$Scope ;
}
.end annotation
.annotation build L androidx/room/Database ;
entities = {
L androidx/work/impl/model/Dependency ;,
L androidx/work/impl/model/WorkSpec ;,
L androidx/work/impl/model/WorkTag ;,
L androidx/work/impl/model/SystemIdInfo ;,
L androidx/work/impl/model/WorkName ;,
L androidx/work/impl/model/WorkProgress ;,
L androidx/work/impl/model/Preference ;
}
version = 0xb
.end annotation
.annotation build L androidx/room/TypeConverters ;
value = {
L androidx/work/Data ;,
L androidx/work/impl/model/WorkTypeConverters ;
}
.end annotation
# static fields
2020-11-16 22:05:17 +00:00
.field private static final PRUNE_SQL_FORMAT_PREFIX : L java/lang/String ; = "DELETE FROM workspec WHERE state IN (2, 3, 5) AND (period_start_time + minimum_retention_duration) < "
2020-11-12 02:11:44 +00:00
2020-11-16 22:05:17 +00:00
.field private static final PRUNE_SQL_FORMAT_SUFFIX : L java/lang/String ; = " AND (SELECT COUNT(*)=0 FROM dependency WHERE prerequisite_id=id AND work_spec_id NOT IN (SELECT id FROM workspec WHERE state IN (2, 3, 5)))"
2020-11-12 02:11:44 +00:00
2020-11-16 22:05:17 +00:00
.field private static final PRUNE_THRESHOLD_MILLIS : J
2020-11-12 02:11:44 +00:00
# direct methods
.method public static constructor <clinit> ( ) V
.locals 3
sget-object v0 , L java/util/concurrent/TimeUnit ;-> DAYS : L java/util/concurrent/TimeUnit ;
const-wide/16 v1 , 0x7
invoke-virtual { v0 , v1 , v2 } , L java/util/concurrent/TimeUnit ;-> toMillis ( J ) J
move-result-wide v0
sput-wide v0 , L androidx/work/impl/WorkDatabase ;-> PRUNE_THRESHOLD_MILLIS : J
return-void
.end method
.method public constructor <init> ( ) V
.locals 0
invoke-direct { p0 } , L androidx/room/RoomDatabase ;-> <init> ( ) V
return-void
.end method
.method public static create ( L android/content/Context ;L java/util/concurrent/Executor ;Z ) L androidx/work/impl/WorkDatabase ;
.locals 5
. param p0 # Landroid/content/Context;
.annotation build L androidx/annotation/NonNull ;
.end annotation
. end param
. param p1 # Ljava/util/concurrent/Executor;
.annotation build L androidx/annotation/NonNull ;
.end annotation
. end param
.annotation build L androidx/annotation/NonNull ;
.end annotation
const-class v0 , L androidx/work/impl/WorkDatabase ;
if-eqz p2 , :cond_0
invoke-static { p0 , v0 } , L androidx/room/Room ;-> inMemoryDatabaseBuilder ( L android/content/Context ;L java/lang/Class ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p2
invoke-virtual { p2 } , L androidx/room/RoomDatabase$Builder ;-> allowMainThreadQueries ( ) L androidx/room/RoomDatabase$Builder ;
move-result-object p2
goto :goto_0
:cond_0
invoke-static { } , L androidx/work/impl/WorkDatabasePathHelper ;-> getWorkDatabaseName ( ) L java/lang/String ;
move-result-object p2
invoke-static { p0 , v0 , p2 } , L androidx/room/Room ;-> databaseBuilder ( L android/content/Context ;L java/lang/Class ;L java/lang/String ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p2
new-instance v0 , L androidx/work/impl/WorkDatabase$1 ;
invoke-direct { v0 , p0 } , L androidx/work/impl/WorkDatabase$1 ;-> <init> ( L android/content/Context ;) V
invoke-virtual { p2 , v0 } , L androidx/room/RoomDatabase$Builder ;-> openHelperFactory ( L androidx/sqlite/db/SupportSQLiteOpenHelper$Factory ;) L androidx/room/RoomDatabase$Builder ;
:goto_0
invoke-virtual { p2 , p1 } , L androidx/room/RoomDatabase$Builder ;-> setQueryExecutor ( L java/util/concurrent/Executor ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
invoke-static { } , L androidx/work/impl/WorkDatabase ;-> generateCleanupCallback ( ) L androidx/room/RoomDatabase$Callback ;
move-result-object p2
invoke-virtual { p1 , p2 } , L androidx/room/RoomDatabase$Builder ;-> addCallback ( L androidx/room/RoomDatabase$Callback ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
const/4 p2 , 0x1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
sget-object v1 , L androidx/work/impl/WorkDatabaseMigrations ;-> MIGRATION_1_2 : L androidx/room/migration/Migration ;
const/4 v2 , 0x0
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
new-instance v1 , L androidx/work/impl/WorkDatabaseMigrations$RescheduleMigration ;
const/4 v3 , 0x2
const/4 v4 , 0x3
invoke-direct { v1 , p0 , v3 , v4 } , L androidx/work/impl/WorkDatabaseMigrations$RescheduleMigration ;-> <init> ( L android/content/Context ;II ) V
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
sget-object v1 , L androidx/work/impl/WorkDatabaseMigrations ;-> MIGRATION_3_4 : L androidx/room/migration/Migration ;
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
sget-object v1 , L androidx/work/impl/WorkDatabaseMigrations ;-> MIGRATION_4_5 : L androidx/room/migration/Migration ;
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
new-instance v1 , L androidx/work/impl/WorkDatabaseMigrations$RescheduleMigration ;
const/4 v3 , 0x5
const/4 v4 , 0x6
invoke-direct { v1 , p0 , v3 , v4 } , L androidx/work/impl/WorkDatabaseMigrations$RescheduleMigration ;-> <init> ( L android/content/Context ;II ) V
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
sget-object v1 , L androidx/work/impl/WorkDatabaseMigrations ;-> MIGRATION_6_7 : L androidx/room/migration/Migration ;
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
sget-object v1 , L androidx/work/impl/WorkDatabaseMigrations ;-> MIGRATION_7_8 : L androidx/room/migration/Migration ;
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
sget-object v1 , L androidx/work/impl/WorkDatabaseMigrations ;-> MIGRATION_8_9 : L androidx/room/migration/Migration ;
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array v0 , p2 , [ L androidx/room/migration/Migration ;
new-instance v1 , L androidx/work/impl/WorkDatabaseMigrations$WorkMigration9To10 ;
invoke-direct { v1 , p0 } , L androidx/work/impl/WorkDatabaseMigrations$WorkMigration9To10 ;-> <init> ( L android/content/Context ;) V
aput-object v1 , v0 , v2
invoke-virtual { p1 , v0 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p1
new-array p2 , p2 , [ L androidx/room/migration/Migration ;
new-instance v0 , L androidx/work/impl/WorkDatabaseMigrations$RescheduleMigration ;
const/16 v1 , 0xa
const/16 v3 , 0xb
invoke-direct { v0 , p0 , v1 , v3 } , L androidx/work/impl/WorkDatabaseMigrations$RescheduleMigration ;-> <init> ( L android/content/Context ;II ) V
aput-object v0 , p2 , v2
invoke-virtual { p1 , p2 } , L androidx/room/RoomDatabase$Builder ;-> addMigrations ( [ L androidx/room/migration/Migration ;) L androidx/room/RoomDatabase$Builder ;
move-result-object p0
invoke-virtual { p0 } , L androidx/room/RoomDatabase$Builder ;-> fallbackToDestructiveMigration ( ) L androidx/room/RoomDatabase$Builder ;
move-result-object p0
invoke-virtual { p0 } , L androidx/room/RoomDatabase$Builder ;-> build ( ) L androidx/room/RoomDatabase ;
move-result-object p0
check-cast p0 , L androidx/work/impl/WorkDatabase ;
return-object p0
.end method
.method public static generateCleanupCallback ( ) L androidx/room/RoomDatabase$Callback ;
.locals 1
new-instance v0 , L androidx/work/impl/WorkDatabase$2 ;
invoke-direct { v0 } , L androidx/work/impl/WorkDatabase$2 ;-> <init> ( ) V
return-object v0
.end method
.method public static getPruneDate ( ) J
.locals 4
invoke-static { } , L java/lang/System ;-> currentTimeMillis ( ) J
move-result-wide v0
sget-wide v2 , L androidx/work/impl/WorkDatabase ;-> PRUNE_THRESHOLD_MILLIS : J
sub-long/2addr v0 , v2
return-wide v0
.end method
.method public static getPruneSQL ( ) L java/lang/String ;
.locals 3
.annotation build L androidx/annotation/NonNull ;
.end annotation
const-string v0 , "DELETE FROM workspec WHERE state IN (2, 3, 5) AND (period_start_time + minimum_retention_duration) < "
2020-11-20 01:16:14 +00:00
invoke-static { v0 } , L f/e/c/a/a ;-> F ( L java/lang/String ;) L java/lang/StringBuilder ;
2020-11-12 02:11:44 +00:00
move-result-object v0
invoke-static { } , L androidx/work/impl/WorkDatabase ;-> getPruneDate ( ) J
move-result-wide v1
invoke-virtual { v0 , v1 , v2 } , L java/lang/StringBuilder ;-> append ( J ) L java/lang/StringBuilder ;
const-string v1 , " AND (SELECT COUNT(*)=0 FROM dependency WHERE prerequisite_id=id AND work_spec_id NOT IN (SELECT id FROM workspec WHERE state IN (2, 3, 5)))"
invoke-virtual { v0 , v1 } , L java/lang/StringBuilder ;-> append ( L java/lang/String ;) L java/lang/StringBuilder ;
invoke-virtual { v0 } , L java/lang/StringBuilder ;-> toString ( ) L java/lang/String ;
move-result-object v0
return-object v0
.end method
# virtual methods
.method public abstract dependencyDao ( ) L androidx/work/impl/model/DependencyDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method
.method public abstract preferenceDao ( ) L androidx/work/impl/model/PreferenceDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method
.method public abstract rawWorkInfoDao ( ) L androidx/work/impl/model/RawWorkInfoDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method
.method public abstract systemIdInfoDao ( ) L androidx/work/impl/model/SystemIdInfoDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method
.method public abstract workNameDao ( ) L androidx/work/impl/model/WorkNameDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method
.method public abstract workProgressDao ( ) L androidx/work/impl/model/WorkProgressDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method
.method public abstract workSpecDao ( ) L androidx/work/impl/model/WorkSpecDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method
.method public abstract workTagDao ( ) L androidx/work/impl/model/WorkTagDao ;
.annotation build L androidx/annotation/NonNull ;
.end annotation
.end method