revert: "refactor: Replace Requery's SQLite with AndroidX's new KMP SQLite"
Some checks are pending
Build app / Build app (push) Waiting to run
Mirror Repository / mirror (push) Waiting to run

This reverts commit f604e4e256.
This commit is contained in:
Ahmad Ansori Palembani 2025-06-01 18:05:35 +07:00
parent 7ac42d5545
commit abbe606473
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
5 changed files with 60 additions and 38 deletions

View file

@ -200,6 +200,7 @@ dependencies {
implementation(libs.play.services.gcm)
// Database
implementation(libs.sqlite.android)
implementation(libs.bundles.sqlite)
// Model View Presenter

View file

@ -2,19 +2,12 @@ package yokai.core.di
import android.app.Application
import androidx.core.content.ContextCompat
import androidx.sqlite.driver.bundled.BundledSQLiteDriver
import androidx.sqlite.driver.bundled.SQLITE_OPEN_CREATE
import androidx.sqlite.driver.bundled.SQLITE_OPEN_READWRITE
import androidx.sqlite.db.SupportSQLiteDatabase
import app.cash.sqldelight.db.SqlDriver
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
import co.touchlab.kermit.Logger
import com.chuckerteam.chucker.api.ChuckerCollector
import com.chuckerteam.chucker.api.ChuckerInterceptor
import com.eygraber.sqldelight.androidx.driver.AndroidxSqliteConfiguration
import com.eygraber.sqldelight.androidx.driver.AndroidxSqliteDatabaseType
import com.eygraber.sqldelight.androidx.driver.AndroidxSqliteDriver
import com.eygraber.sqldelight.androidx.driver.File
import com.eygraber.sqldelight.androidx.driver.SqliteJournalMode
import com.eygraber.sqldelight.androidx.driver.SqliteSync
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.core.storage.AndroidStorageFolderProvider
import eu.kanade.tachiyomi.data.cache.ChapterCache
@ -30,6 +23,7 @@ import eu.kanade.tachiyomi.network.NetworkHelper
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.util.chapter.ChapterFilter
import eu.kanade.tachiyomi.util.manga.MangaShortcutManager
import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory
import kotlinx.serialization.json.Json
import kotlinx.serialization.protobuf.ProtoBuf
import nl.adaptivity.xmlutil.XmlDeclMode
@ -48,23 +42,46 @@ fun appModule(app: Application) = module {
single { app }
single<SqlDriver> {
AndroidxSqliteDriver(
createConnection = { name ->
BundledSQLiteDriver().open(name, SQLITE_OPEN_READWRITE or SQLITE_OPEN_CREATE)
},
databaseType = AndroidxSqliteDatabaseType.File(app, "tachiyomi.db"),
configuration = AndroidxSqliteConfiguration().apply {
isForeignKeyConstraintsEnabled = true
journalMode = SqliteJournalMode.WAL
sync = SqliteSync.Normal
},
AndroidSqliteDriver(
schema = Database.Schema,
onCreate = {
Logger.d { "Creating new database..." }
},
onUpdate = { oldVersion, newVersion ->
if (oldVersion < newVersion) {
Logger.d { "Upgrading database from $oldVersion to $newVersion" }
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()
// },
factory = RequerySQLiteOpenHelperFactory(),
callback = object : AndroidSqliteDriver.Callback(Database.Schema) {
override fun onOpen(db: SupportSQLiteDatabase) {
super.onOpen(db)
setPragma(db, "foreign_keys = ON")
setPragma(db, "journal_mode = WAL")
setPragma(db, "synchronous = NORMAL")
}
private fun setPragma(db: SupportSQLiteDatabase, pragma: String) {
val cursor = db.query("PRAGMA $pragma")
cursor.moveToFirst()
cursor.close()
}
// Not sure if this is still needed, but just in case
override fun onConfigure(db: SupportSQLiteDatabase) {
db.setForeignKeyConstraintsEnabled(true)
}
override fun onCreate(db: SupportSQLiteDatabase) {
Logger.d { "Creating new database..." }
super.onCreate(db)
}
override fun onUpgrade(db: SupportSQLiteDatabase, oldVersion: Int, newVersion: Int) {
if (oldVersion < newVersion) {
Logger.d { "Upgrading database from $oldVersion to $newVersion" }
super.onUpgrade(db, oldVersion, newVersion)
}
}
},
)