Remove SQLiteOpenHelper as database is migrated to SQLDelight (#7448)
This commit is contained in:
parent
17951cfd68
commit
eb2a904b61
2 changed files with 11 additions and 53 deletions
|
@ -3,7 +3,6 @@ package eu.kanade.tachiyomi
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.sqlite.db.SupportSQLiteOpenHelper
|
|
||||||
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
|
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
|
||||||
import com.squareup.sqldelight.android.AndroidSqliteDriver
|
import com.squareup.sqldelight.android.AndroidSqliteDriver
|
||||||
import com.squareup.sqldelight.db.SqlDriver
|
import com.squareup.sqldelight.db.SqlDriver
|
||||||
|
@ -15,7 +14,6 @@ import eu.kanade.data.dateAdapter
|
||||||
import eu.kanade.data.listOfStringsAdapter
|
import eu.kanade.data.listOfStringsAdapter
|
||||||
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
import eu.kanade.tachiyomi.data.cache.ChapterCache
|
||||||
import eu.kanade.tachiyomi.data.cache.CoverCache
|
import eu.kanade.tachiyomi.data.cache.CoverCache
|
||||||
import eu.kanade.tachiyomi.data.database.DbOpenCallback
|
|
||||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.saver.ImageSaver
|
import eu.kanade.tachiyomi.data.saver.ImageSaver
|
||||||
|
@ -37,24 +35,18 @@ class AppModule(val app: Application) : InjektModule {
|
||||||
override fun InjektRegistrar.registerInjectables() {
|
override fun InjektRegistrar.registerInjectables() {
|
||||||
addSingleton(app)
|
addSingleton(app)
|
||||||
|
|
||||||
// This is used to allow incremental migration from Storio
|
|
||||||
addSingletonFactory<SupportSQLiteOpenHelper> {
|
|
||||||
val configuration = SupportSQLiteOpenHelper.Configuration.builder(app)
|
|
||||||
.callback(DbOpenCallback())
|
|
||||||
.name(DbOpenCallback.DATABASE_FILENAME)
|
|
||||||
.noBackupDirectory(false)
|
|
||||||
.build()
|
|
||||||
|
|
||||||
if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
||||||
// Support database inspector in Android Studio
|
|
||||||
FrameworkSQLiteOpenHelperFactory().create(configuration)
|
|
||||||
} else {
|
|
||||||
RequerySQLiteOpenHelperFactory().create(configuration)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
addSingletonFactory<SqlDriver> {
|
addSingletonFactory<SqlDriver> {
|
||||||
AndroidSqliteDriver(openHelper = get())
|
AndroidSqliteDriver(
|
||||||
|
schema = Database.Schema,
|
||||||
|
context = app,
|
||||||
|
name = "tachiyomi.db",
|
||||||
|
factory = if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
// Support database inspector in Android Studio
|
||||||
|
FrameworkSQLiteOpenHelperFactory()
|
||||||
|
} else {
|
||||||
|
RequerySQLiteOpenHelperFactory()
|
||||||
|
},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
addSingletonFactory {
|
addSingletonFactory {
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
package eu.kanade.tachiyomi.data.database
|
|
||||||
|
|
||||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
|
||||||
import androidx.sqlite.db.SupportSQLiteOpenHelper
|
|
||||||
import com.squareup.sqldelight.android.AndroidSqliteDriver
|
|
||||||
import eu.kanade.tachiyomi.Database
|
|
||||||
import logcat.logcat
|
|
||||||
|
|
||||||
class DbOpenCallback : SupportSQLiteOpenHelper.Callback(Database.Schema.version) {
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
const val DATABASE_FILENAME = "tachiyomi.db"
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreate(db: SupportSQLiteDatabase) {
|
|
||||||
logcat { "Creating new database" }
|
|
||||||
Database.Schema.create(AndroidSqliteDriver(database = db, cacheSize = 1))
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onUpgrade(db: SupportSQLiteDatabase, oldVersion: Int, newVersion: Int) {
|
|
||||||
if (oldVersion < newVersion) {
|
|
||||||
logcat { "Upgrading database from $oldVersion to $newVersion" }
|
|
||||||
Database.Schema.migrate(
|
|
||||||
driver = AndroidSqliteDriver(database = db, cacheSize = 1),
|
|
||||||
oldVersion = oldVersion,
|
|
||||||
newVersion = newVersion,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onConfigure(db: SupportSQLiteDatabase) {
|
|
||||||
db.setForeignKeyConstraintsEnabled(true)
|
|
||||||
}
|
|
||||||
}
|
|
Reference in a new issue