- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
42 lines
1.3 KiB
Java
42 lines
1.3 KiB
Java
package androidx.work.impl;
|
|
|
|
import androidx.room.RoomDatabase;
|
|
import androidx.sqlite.db.SupportSQLiteDatabase;
|
|
import androidx.work.Clock;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class CleanupCallback extends RoomDatabase.Callback {
|
|
private final Clock clock;
|
|
|
|
public final Clock getClock() {
|
|
return this.clock;
|
|
}
|
|
|
|
public CleanupCallback(Clock clock) {
|
|
Intrinsics.checkNotNullParameter(clock, "clock");
|
|
this.clock = clock;
|
|
}
|
|
|
|
private final String getPruneSQL() {
|
|
return "DELETE FROM workspec WHERE state IN (2, 3, 5) AND (last_enqueue_time + minimum_retention_duration) < " + getPruneDate() + " 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)))";
|
|
}
|
|
|
|
private final long getPruneDate() {
|
|
return this.clock.currentTimeMillis() - WorkDatabaseKt.PRUNE_THRESHOLD_MILLIS;
|
|
}
|
|
|
|
@Override // androidx.room.RoomDatabase.Callback
|
|
public void onOpen(SupportSQLiteDatabase db) {
|
|
Intrinsics.checkNotNullParameter(db, "db");
|
|
super.onOpen(db);
|
|
db.beginTransaction();
|
|
try {
|
|
db.execSQL(getPruneSQL());
|
|
db.setTransactionSuccessful();
|
|
} finally {
|
|
db.endTransaction();
|
|
}
|
|
}
|
|
}
|