discord-jadx/app/src/main/java/androidx/work/impl/WorkDatabase.java

126 lines
5.7 KiB
Java

package androidx.work.impl;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;
import androidx.sqlite.db.SupportSQLiteDatabase;
import androidx.sqlite.db.SupportSQLiteOpenHelper;
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory;
import androidx.work.Data;
import androidx.work.impl.WorkDatabaseMigrations;
import androidx.work.impl.model.Dependency;
import androidx.work.impl.model.DependencyDao;
import androidx.work.impl.model.Preference;
import androidx.work.impl.model.PreferenceDao;
import androidx.work.impl.model.RawWorkInfoDao;
import androidx.work.impl.model.SystemIdInfo;
import androidx.work.impl.model.SystemIdInfoDao;
import androidx.work.impl.model.WorkName;
import androidx.work.impl.model.WorkNameDao;
import androidx.work.impl.model.WorkProgress;
import androidx.work.impl.model.WorkProgressDao;
import androidx.work.impl.model.WorkSpec;
import androidx.work.impl.model.WorkSpecDao;
import androidx.work.impl.model.WorkTag;
import androidx.work.impl.model.WorkTagDao;
import androidx.work.impl.model.WorkTypeConverters;
import c.d.b.a.a;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
@TypeConverters({Data.class, WorkTypeConverters.class})
@Database(entities = {Dependency.class, WorkSpec.class, WorkTag.class, SystemIdInfo.class, WorkName.class, WorkProgress.class, Preference.class}, version = 11)
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
public abstract class WorkDatabase extends RoomDatabase {
private static final String PRUNE_SQL_FORMAT_PREFIX = "DELETE FROM workspec WHERE state IN (2, 3, 5) AND (period_start_time + minimum_retention_duration) < ";
private static final String PRUNE_SQL_FORMAT_SUFFIX = " 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 static final long PRUNE_THRESHOLD_MILLIS = TimeUnit.DAYS.toMillis(7);
/* renamed from: androidx.work.impl.WorkDatabase$1 reason: invalid class name */
public class AnonymousClass1 implements SupportSQLiteOpenHelper.Factory {
public final /* synthetic */ Context val$context;
public AnonymousClass1(Context context) {
this.val$context = context;
}
@Override // androidx.sqlite.db.SupportSQLiteOpenHelper.Factory
@NonNull
public SupportSQLiteOpenHelper create(@NonNull SupportSQLiteOpenHelper.Configuration configuration) {
SupportSQLiteOpenHelper.Configuration.Builder builder = SupportSQLiteOpenHelper.Configuration.builder(this.val$context);
builder.name(configuration.name).callback(configuration.callback).noBackupDirectory(true);
return new FrameworkSQLiteOpenHelperFactory().create(builder.build());
}
}
/* renamed from: androidx.work.impl.WorkDatabase$2 reason: invalid class name */
public class AnonymousClass2 extends RoomDatabase.Callback {
@Override // androidx.room.RoomDatabase.Callback
public void onOpen(@NonNull SupportSQLiteDatabase supportSQLiteDatabase) {
super.onOpen(supportSQLiteDatabase);
supportSQLiteDatabase.beginTransaction();
try {
supportSQLiteDatabase.execSQL(WorkDatabase.getPruneSQL());
supportSQLiteDatabase.setTransactionSuccessful();
} finally {
supportSQLiteDatabase.endTransaction();
}
}
}
@NonNull
public static WorkDatabase create(@NonNull Context context, @NonNull Executor executor, boolean z2) {
RoomDatabase.Builder builder;
if (z2) {
builder = Room.inMemoryDatabaseBuilder(context, WorkDatabase.class).allowMainThreadQueries();
} else {
builder = Room.databaseBuilder(context, WorkDatabase.class, WorkDatabasePathHelper.getWorkDatabaseName());
builder.openHelperFactory(new AnonymousClass1(context));
}
return (WorkDatabase) builder.setQueryExecutor(executor).addCallback(generateCleanupCallback()).addMigrations(WorkDatabaseMigrations.MIGRATION_1_2).addMigrations(new WorkDatabaseMigrations.RescheduleMigration(context, 2, 3)).addMigrations(WorkDatabaseMigrations.MIGRATION_3_4).addMigrations(WorkDatabaseMigrations.MIGRATION_4_5).addMigrations(new WorkDatabaseMigrations.RescheduleMigration(context, 5, 6)).addMigrations(WorkDatabaseMigrations.MIGRATION_6_7).addMigrations(WorkDatabaseMigrations.MIGRATION_7_8).addMigrations(WorkDatabaseMigrations.MIGRATION_8_9).addMigrations(new WorkDatabaseMigrations.WorkMigration9To10(context)).addMigrations(new WorkDatabaseMigrations.RescheduleMigration(context, 10, 11)).fallbackToDestructiveMigration().build();
}
public static RoomDatabase.Callback generateCleanupCallback() {
return new AnonymousClass2();
}
public static long getPruneDate() {
return System.currentTimeMillis() - PRUNE_THRESHOLD_MILLIS;
}
@NonNull
public static String getPruneSQL() {
StringBuilder K = a.K(PRUNE_SQL_FORMAT_PREFIX);
K.append(getPruneDate());
K.append(PRUNE_SQL_FORMAT_SUFFIX);
return K.toString();
}
@NonNull
public abstract DependencyDao dependencyDao();
@NonNull
public abstract PreferenceDao preferenceDao();
@NonNull
public abstract RawWorkInfoDao rawWorkInfoDao();
@NonNull
public abstract SystemIdInfoDao systemIdInfoDao();
@NonNull
public abstract WorkNameDao workNameDao();
@NonNull
public abstract WorkProgressDao workProgressDao();
@NonNull
public abstract WorkSpecDao workSpecDao();
@NonNull
public abstract WorkTagDao workTagDao();
}