Nonnullize and Immutablize DownloadDirname, upgrade db

This commit is contained in:
tarsin committed 2023-05-26 15:44:00 +08:00
1 parent cf185a6148
commit cc636bcae0
5 files changed
+550 -12

No files matched your search

+2 -3
View File
@@ -79,12 +79,11 @@ object EhDB {
}
@Synchronized
fun putDownloadDirname(gid: Long, dirname: String?) {
fun putDownloadDirname(gid: Long, dirname: String) {
val dao = db.downloadDirnameDao()
var raw = dao.load(gid)
if (raw != null) {
raw.dirname = dirname
dao.update(raw)
dao.update(raw.copy(dirname = dirname))
} else {
raw = DownloadDirname(gid, dirname)
dao.insert(raw)
@@ -8,8 +8,8 @@ import androidx.room.PrimaryKey
data class DownloadDirname(
@PrimaryKey
@ColumnInfo(name = "GID")
var gid: Long = 0,
val gid: Long,
@ColumnInfo(name = "DIRNAME")
var dirname: String? = null,
val dirname: String,
)
@@ -30,8 +30,14 @@ val EHDB_MIGRATION_4_5 = object : Migration(4, 5) {
@Database(
entities = [BookmarkInfo::class, DownloadInfo::class, DownloadLabel::class, DownloadDirname::class, Filter::class, HistoryInfo::class, LocalFavoriteInfo::class, QuickSearch::class],
version = 5,
version = 6,
exportSchema = true,
autoMigrations = [
AutoMigration(
from = 5,
to = 6,
),
],
)
abstract class EhDatabase : RoomDatabase() {
abstract fun bookmarksBao(): BookmarksDao
@@ -53,7 +53,7 @@ class RestoreDownloadPreference @JvmOverloads constructor(
return runCatching {
val spiderInfo = readCompatFromUniFile(siFile) ?: return null
val gid = spiderInfo.gid
val dirname = file.name
val dirname = file.name ?: return null
if (mManager.containDownloadInfo(gid)) {
// Restore download dir to avoid redownload
val dbdirname = EhDB.getDownloadDirname(gid)
@@ -63,10 +63,9 @@ class RestoreDownloadPreference @JvmOverloads constructor(
}
return null
}
RestoreItem().also {
RestoreItem(dirname).also {
it.gid = spiderInfo.gid
it.token = spiderInfo.token
it.dirname = file.name
}
}.onFailure {
it.printStackTrace()
@@ -85,9 +84,9 @@ class RestoreDownloadPreference @JvmOverloads constructor(
}
}
private class RestoreItem : BaseGalleryInfo() {
var dirname: String? = null
}
private class RestoreItem(
val dirname: String,
) : BaseGalleryInfo()
override fun launchJob() {
if (singletonJob?.isActive == true) {