This commit is contained in:
Horis
2025-08-31 21:28:14 +08:00
parent 8dadff72f9
commit 8c9edcfbda
@@ -1,6 +1,7 @@
package io.legado.app.help.storage package io.legado.app.help.storage
import android.content.Context import android.content.Context
import android.database.sqlite.SQLiteConstraintException
import android.net.Uri import android.net.Uri
import androidx.documentfile.provider.DocumentFile import androidx.documentfile.provider.DocumentFile
import io.legado.app.BuildConfig import io.legado.app.BuildConfig
@@ -105,14 +106,23 @@ object Restore {
.forEach { book -> .forEach { book ->
book.coverUrl = LocalBook.getCoverPath(book) book.coverUrl = LocalBook.getCoverPath(book)
} }
val books = if (BackupConfig.ignoreLocalBook) { val newBooks = arrayListOf<Book>()
it.filter { book -> val ignoreLocalBook = BackupConfig.ignoreLocalBook
!book.isLocal it.forEach { book ->
if (ignoreLocalBook && book.isLocal) {
return@forEach
}
if (appDb.bookDao.has(book.bookUrl)) {
try {
appDb.bookDao.update(book)
} catch (_: SQLiteConstraintException) {
appDb.bookDao.insert(book)
}
} else {
newBooks.add(book)
} }
} else {
it
} }
appDb.bookDao.insert(*books.toTypedArray()) appDb.bookDao.insert(*newBooks.toTypedArray())
} }
fileToListT<Bookmark>(path, "bookmark.json")?.let { fileToListT<Bookmark>(path, "bookmark.json")?.let {
appDb.bookmarkDao.insert(*it.toTypedArray()) appDb.bookmarkDao.insert(*it.toTypedArray())