Nonnullize and Immutablize DownloadDirname, upgrade db
This commit is contained in:
1 parent
cf185a6148
commit
cc636bcae0
5 files changed
+550
-12
No files matched your search
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user