Fix database corruption (#7042)

When using SQLDelight and Storio at the same time

(cherry picked from commit 891406cc7f)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
This commit is contained in:
Andreas
2022-04-29 14:04:59 +02:00
committed by Jobobby04
parent 3a4f107ab7
commit 4d8ba5868c
5 changed files with 27 additions and 20 deletions
@@ -2,6 +2,8 @@ package eu.kanade.tachiyomi
import android.app.Application
import androidx.core.content.ContextCompat
import androidx.sqlite.db.SupportSQLiteOpenHelper
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
import com.squareup.sqldelight.android.AndroidSqliteDriver
import com.squareup.sqldelight.db.SqlDriver
import data.History
@@ -36,15 +38,19 @@ class AppModule(val app: Application) : InjektModule {
override fun InjektRegistrar.registerInjectables() {
addSingleton(app)
addSingletonFactory { DbOpenCallback() }
// This is used to allow incremental migration from Storio
addSingletonFactory<SupportSQLiteOpenHelper> {
FrameworkSQLiteOpenHelperFactory().create(
SupportSQLiteOpenHelper.Configuration.builder(app)
.callback(DbOpenCallback())
.name(DbOpenCallback.DATABASE_NAME)
.noBackupDirectory(false)
.build()
)
}
addSingletonFactory<SqlDriver> {
AndroidSqliteDriver(
schema = Database.Schema,
context = app,
name = DbOpenCallback.DATABASE_NAME,
callback = get<DbOpenCallback>()
)
AndroidSqliteDriver(openHelper = get())
}
addSingletonFactory {