Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit99696b1

Browse files
committed
Migrate to SQLite Driver APIs
1 parent71291b8 commit99696b1

File tree

7 files changed

+41
-18
lines changed

7 files changed

+41
-18
lines changed

‎app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import coil3.request.crossfade
3939
importcoil3.serviceLoaderEnabled
4040
importcoil3.util.DebugLogger
4141
importcom.ehviewer.core.database.SearchDatabase
42+
importcom.ehviewer.core.database.roomDb
4243
importcom.ehviewer.core.files.deleteContent
4344
importcom.ehviewer.core.ui.util.initSETConnection
4445
importcom.ehviewer.core.util.isAtLeastO
@@ -83,7 +84,6 @@ import logcat.LogPriority
8384
importlogcat.LogcatLogger
8485
importlogcat.asLog
8586
importokio.Path.Companion.toOkioPath
86-
importsplitties.arch.room.roomDb
8787
importsplitties.init.appCtx
8888

8989
privateval lifecycle=ProcessLifecycleOwner.get().lifecycle

‎app/src/main/kotlin/com/hippo/ehviewer/EhDB.kt‎

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@
1515
*/
1616
packagecom.hippo.ehviewer
1717

18-
importandroid.content.Context
19-
importandroid.net.Uri
2018
importarrow.fx.coroutines.resource
2119
importarrow.fx.coroutines.resourceScope
2220
importcom.ehviewer.core.data.model.asEntity
2321
importcom.ehviewer.core.database.EhDatabase
2422
importcom.ehviewer.core.database.Schema17to18
23+
importcom.ehviewer.core.database.getDatabasePath
2524
importcom.ehviewer.core.database.model.DownloadArtist
2625
importcom.ehviewer.core.database.model.DownloadDirname
2726
importcom.ehviewer.core.database.model.DownloadInfo
@@ -32,13 +31,13 @@ import com.ehviewer.core.database.model.HistoryInfo
3231
importcom.ehviewer.core.database.model.LocalFavoriteInfo
3332
importcom.ehviewer.core.database.model.ProgressInfo
3433
importcom.ehviewer.core.database.model.QuickSearch
34+
importcom.ehviewer.core.database.roomDb
35+
importcom.ehviewer.core.files.delete
3536
importcom.ehviewer.core.files.sendTo
3637
importcom.ehviewer.core.model.GalleryInfo
3738
importcom.hippo.ehviewer.download.DownloadManager
3839
importkotlinx.coroutines.flow.Flow
3940
importokio.Path
40-
importokio.Path.Companion.toOkioPath
41-
importsplitties.arch.room.roomDb
4241

4342
object EhDB {
4443
privateconstvalDB_NAME="eh.db"
@@ -277,23 +276,23 @@ object EhDB {
277276
db.filterDao().update(filter)
278277
}
279278

280-
funexportDB(context:Context,file:Path) {
279+
funexportDB(file:Path) {
281280
db.query("PRAGMA wal_checkpoint(FULL)",null).use { it.moveToNext() }
282-
val dbFile=context.getDatabasePath(DB_NAME)
283-
dbFile.toOkioPath() sendTo file
281+
val dbFile= getDatabasePath(DB_NAME)
282+
dbFile sendTo file
284283
}
285284

286-
suspendfunimportDB(context:Context,uri:Uri)= resourceScope {
285+
suspendfunimportDB(file:Path)= resourceScope {
287286
val tempDBName="tmp.db"
287+
val dbFile= getDatabasePath(tempDBName)
288+
file sendTo dbFile
288289
val oldDB= resource {
289-
context.deleteDatabase(tempDBName)
290290
roomDb<EhDatabase>(tempDBName) {
291-
createFromInputStream { context.contentResolver.openInputStream(uri) }
292291
addMigrations(Schema17to18())
293292
}
294293
} release { db->
295294
db.close()
296-
context.deleteDatabase(tempDBName)
295+
dbFile.delete()
297296
}
298297

299298
db.galleryDao().insertOrIgnore(oldDB.galleryDao().list())

‎app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ fun AnimatedVisibilityScope.AboutScreen(navigator: DestinationsNavigator) = Scre
123123
}
124124
}
125125

126-
context(ctx:Context, _:DialogState)
126+
context(_:Context, _:DialogState)
127127
suspendfunshowNewVersion(release:Release) {
128128
awaitConfirmationOrCancel(
129129
confirmText=R.string.download,
@@ -140,7 +140,7 @@ suspend fun showNewVersion(release: Release) {
140140
}
141141
if (Settings.backupBeforeUpdate.value) {
142142
val time=ReadableTime.getFilenamableTime()
143-
EhDB.exportDB(ctx, (downloadLocation/"$time.db"))
143+
EhDB.exportDB(downloadLocation/"$time.db")
144144
}
145145
// TODO: Download in the background and show progress in notification
146146
val path=AppConfig.tempDir/"update.apk"

‎app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,13 @@ private fun dumplog(uri: Uri): Unit = with(ctx) {
9696
context(ctx:Context)
9797
privatefunexportDatabase(uri:Uri) {
9898
ctx.grantUriPermission(BuildConfig.APPLICATION_ID, uri,Intent.FLAG_GRANT_READ_URI_PERMISSION)
99-
EhDB.exportDB(ctx,uri.toOkioPath())
99+
EhDB.exportDB(uri.toOkioPath())
100100
}
101101

102102
context(ctx:Context)
103103
privatesuspendfunimportDatabase(uri:Uri) {
104104
ctx.grantUriPermission(BuildConfig.APPLICATION_ID, uri,Intent.FLAG_GRANT_READ_URI_PERMISSION)
105-
EhDB.importDB(ctx,uri)
105+
EhDB.importDB(uri.toOkioPath())
106106
}
107107

108108
@Destination<RootGraph>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
packagecom.ehviewer.core.database
2+
3+
importandroidx.room.Room
4+
importandroidx.room.RoomDatabase
5+
importandroidx.sqlite.driver.AndroidSQLiteDriver
6+
importokio.Path.Companion.toOkioPath
7+
importsplitties.init.appCtx
8+
9+
actualinlinefun <reifiedT :RoomDatabase>roomDb(
10+
name:String,
11+
builder:RoomDatabase.Builder<T>.()->Unit,
12+
)=Room.databaseBuilder<T>(appCtx, name).setDriver(AndroidSQLiteDriver()).apply(builder).build()
13+
14+
actualfungetDatabasePath(name:String)= appCtx.getDatabasePath(name).toOkioPath()
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
packagecom.ehviewer.core.database
2+
3+
importandroidx.room.RoomDatabase
4+
importokio.Path
5+
6+
expectinlinefun <reifiedT :RoomDatabase>roomDb(
7+
name:String,
8+
builder:RoomDatabase.Builder<T>.()->Unit = {},
9+
):T
10+
11+
expectfungetDatabasePath(name:String):Path

‎gradle/libs.versions.toml‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ serialization-xml = { module = "io.github.pdvrieze.xmlutil:serialization", versi
118118
serialization-xml-io = {module ="io.github.pdvrieze.xmlutil:serialization-io",version.ref ="xmlutil" }
119119

120120
splitties-appctx = {module ="com.louiscad.splitties:splitties-appctx",version.ref ="splitties" }
121-
splitties-arch-room = {module ="com.louiscad.splitties:splitties-arch-room",version.ref ="splitties" }
122121
splitties-systemservices = {module ="com.louiscad.splitties:splitties-systemservices",version.ref ="splitties" }
123122

124123
telephoto-zoomable = {module ="me.saket.telephoto:zoomable",version.ref ="telephoto" }
@@ -136,7 +135,7 @@ spotless-gradlePlugin = { module = "com.diffplug.spotless:spotless-plugin-gradle
136135
arrow = ["arrow-fx-coroutines","arrow-functions","arrow-resilience"]
137136
coil = ["coil-compose","coil-gif","coil-network"]
138137
kotlinx-serialization = ["serialization-cbor","serialization-json","serialization-json-io","serialization-xml","serialization-xml-io"]
139-
splitties = ["splitties-appctx","splitties-arch-room","splitties-systemservices"]
138+
splitties = ["splitties-appctx","splitties-systemservices"]
140139

141140
[plugins]
142141
aboutlibraries = {id ="com.mikepenz.aboutlibraries.plugin",version.ref ="aboutlibraries" }

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp