diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c4a83a35d..8469a6323 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -213,6 +213,7 @@ dependencies { implementation("com.louiscad.splitties:splitties-appctx:$splitties") implementation("com.louiscad.splitties:splitties-systemservices:$splitties") implementation("com.louiscad.splitties:splitties-preferences:$splitties") + implementation("com.louiscad.splitties:splitties-arch-room:$splitties") // https://square.github.io/okhttp/changelogs/changelog/ implementation(platform("com.squareup.okhttp3:okhttp-bom:5.0.0-alpha.11")) diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt index 768a86279..c82be76fb 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt @@ -23,7 +23,6 @@ import androidx.collection.LruCache import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.ProcessLifecycleOwner -import androidx.room.Room import coil.ImageLoaderFactory import coil.decode.ImageDecoderDecoder import coil.util.DebugLogger @@ -50,6 +49,7 @@ import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences import eu.kanade.tachiyomi.util.lang.launchIO import kotlinx.coroutines.DelicateCoroutinesApi import okio.Path.Companion.toOkioPath +import splitties.arch.room.roomDb import splitties.init.appCtx import java.net.Proxy @@ -185,7 +185,7 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor val readerPreferences by lazy { ReaderPreferences(AndroidPreferenceStore(appCtx)) } - val ehDatabase by lazy { Room.databaseBuilder(appCtx, EhDatabase::class.java, "eh.db").allowMainThreadQueries().build() } + val ehDatabase by lazy { roomDb("eh.db") { allowMainThreadQueries() } } val imageCache by lazy { diskCache { diff --git a/app/src/main/java/com/hippo/ehviewer/EhDB.kt b/app/src/main/java/com/hippo/ehviewer/EhDB.kt index 3a8baecc8..71c0d2472 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhDB.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhDB.kt @@ -20,7 +20,6 @@ import android.net.Uri import android.os.ParcelFileDescriptor import android.os.ParcelFileDescriptor.MODE_READ_ONLY import androidx.paging.PagingSource -import androidx.room.Room.databaseBuilder import arrow.fx.coroutines.release import arrow.fx.coroutines.resource import com.hippo.ehviewer.EhApplication.Companion.ehDatabase @@ -36,6 +35,7 @@ import com.hippo.ehviewer.dao.LocalFavoriteInfo import com.hippo.ehviewer.dao.QuickSearch import com.hippo.ehviewer.download.DownloadManager import com.hippo.ehviewer.util.sendTo +import splitties.arch.room.roomDb object EhDB { private val db = ehDatabase @@ -369,7 +369,7 @@ object EhDB { val ehExportName = "eh.export.db" resource { context.deleteDatabase(ehExportName) - databaseBuilder(context, EhDatabase::class.java, ehExportName).build() + roomDb(ehExportName) } release { it.close() context.deleteDatabase(ehExportName) @@ -395,7 +395,7 @@ object EhDB { val tempDBName = "tmp.db" resource { context.deleteDatabase(tempDBName) - databaseBuilder(context, EhDatabase::class.java, tempDBName).createFromInputStream { context.contentResolver.openInputStream(uri) }.build() + roomDb(tempDBName) { createFromInputStream { context.contentResolver.openInputStream(uri) } } } release { it.close() context.deleteDatabase(tempDBName) diff --git a/app/src/main/java/com/hippo/ehviewer/network/CookieDatabase.kt b/app/src/main/java/com/hippo/ehviewer/network/CookieDatabase.kt index c28eb27ef..b8980626d 100644 --- a/app/src/main/java/com/hippo/ehviewer/network/CookieDatabase.kt +++ b/app/src/main/java/com/hippo/ehviewer/network/CookieDatabase.kt @@ -16,9 +16,9 @@ package com.hippo.ehviewer.network import android.content.Context -import androidx.room.Room import com.hippo.ehviewer.dao.Cookie import com.hippo.ehviewer.dao.CookiesDatabase +import splitties.arch.room.roomDb import okhttp3.Cookie as OkHttpCookie class CookieDatabase(context: Context) { @@ -31,7 +31,7 @@ class CookieDatabase(context: Context) { } }.toMutableList() } - private val db = Room.databaseBuilder(context, CookiesDatabase::class.java, "okhttp3-cookie.db").build() + private val db = roomDb("okhttp3-cookie.db") val allCookies by lazy { hashMapOf().also { map -> diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt index 9717b1e7e..8cff37297 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SearchBarScene.kt @@ -16,7 +16,6 @@ import androidx.drawerlayout.widget.DrawerLayout import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import androidx.room.Room import com.google.android.material.search.SearchView import com.google.android.material.search.SearchView.TransitionListener import com.google.android.material.shape.MaterialShapeDrawable @@ -30,11 +29,9 @@ import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withUIContext import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow -import splitties.init.appCtx +import splitties.arch.room.roomDb -private val searchDatabase by lazy { - Room.databaseBuilder(appCtx, SearchDatabase::class.java, "search_database.db").build() -} +private val searchDatabase by lazy { roomDb("search_database.db") } abstract class SearchBarScene : BaseScene(), ToolBarScene { private var _binding: SceneSearchbarBinding? = null