.class public final Landroidx/work/impl/CleanupCallback; .super Landroidx/room/RoomDatabase$Callback; .source "SourceFile" # instance fields .field private final clock:Landroidx/work/Clock; # direct methods .method public constructor (Landroidx/work/Clock;)V .locals 1 const-string v0, "clock" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 187 invoke-direct {p0}, Landroidx/room/RoomDatabase$Callback;->()V iput-object p1, p0, Landroidx/work/impl/CleanupCallback;->clock:Landroidx/work/Clock; return-void .end method .method private final getPruneDate()J .locals 4 iget-object v0, p0, Landroidx/work/impl/CleanupCallback;->clock:Landroidx/work/Clock; .line 193 invoke-interface {v0}, Landroidx/work/Clock;->currentTimeMillis()J move-result-wide v0 sget-wide v2, Landroidx/work/impl/WorkDatabaseKt;->PRUNE_THRESHOLD_MILLIS:J sub-long/2addr v0, v2 return-wide v0 .end method .method private final getPruneSQL()Ljava/lang/String; .locals 3 .line 190 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "DELETE FROM workspec WHERE state IN (2, 3, 5) AND (last_enqueue_time + minimum_retention_duration) < " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-direct {p0}, Landroidx/work/impl/CleanupCallback;->getPruneDate()J move-result-wide v1 invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/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}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method # virtual methods .method public final getClock()Landroidx/work/Clock; .locals 1 iget-object v0, p0, Landroidx/work/impl/CleanupCallback;->clock:Landroidx/work/Clock; return-object v0 .end method .method public onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V .locals 1 const-string v0, "db" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 196 invoke-super {p0, p1}, Landroidx/room/RoomDatabase$Callback;->onOpen(Landroidx/sqlite/db/SupportSQLiteDatabase;)V .line 197 invoke-interface {p1}, Landroidx/sqlite/db/SupportSQLiteDatabase;->beginTransaction()V .line 201 :try_start_0 invoke-direct {p0}, Landroidx/work/impl/CleanupCallback;->getPruneSQL()Ljava/lang/String; move-result-object v0 invoke-interface {p1, v0}, Landroidx/sqlite/db/SupportSQLiteDatabase;->execSQL(Ljava/lang/String;)V .line 202 invoke-interface {p1}, Landroidx/sqlite/db/SupportSQLiteDatabase;->setTransactionSuccessful()V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 204 invoke-interface {p1}, Landroidx/sqlite/db/SupportSQLiteDatabase;->endTransaction()V return-void :catchall_0 move-exception v0 invoke-interface {p1}, Landroidx/sqlite/db/SupportSQLiteDatabase;->endTransaction()V throw v0 .end method