mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
refactor(backup/creator): Source backup creator should depends on BackupManga
This eliminates the need to check libraryEntries backup option twice
This commit is contained in:
parent
66ee8fb0cd
commit
2a073f6154
2 changed files with 16 additions and 21 deletions
|
@ -46,27 +46,25 @@ class BackupCreator(
|
|||
*/
|
||||
@Suppress("RedundantSuspendModifier")
|
||||
suspend fun createBackup(uri: Uri, options: BackupOptions, isAutoBackup: Boolean): String {
|
||||
// Create root object
|
||||
var backup: Backup? = null
|
||||
|
||||
db.inTransaction {
|
||||
val databaseManga = db.getFavoriteMangas().executeAsBlocking() +
|
||||
val databaseManga = db.inTransactionReturn {
|
||||
db.getFavoriteMangas().executeAsBlocking() +
|
||||
if (options.readManga) {
|
||||
db.getReadNotInLibraryMangas().executeAsBlocking()
|
||||
} else {
|
||||
emptyList()
|
||||
}
|
||||
|
||||
backup = Backup(
|
||||
mangaBackupCreator.backupMangas(databaseManga, options),
|
||||
categoriesBackupCreator.backupCategories(options),
|
||||
emptyList(),
|
||||
sourcesBackupCreator.backupExtensionInfo(databaseManga, options),
|
||||
preferenceBackupCreator.backupAppPreferences(options),
|
||||
preferenceBackupCreator.backupSourcePreferences(options),
|
||||
)
|
||||
}
|
||||
|
||||
val backupManga = mangaBackupCreator.backupMangas(databaseManga, options)
|
||||
val backup = Backup(
|
||||
backupManga,
|
||||
categoriesBackupCreator.backupCategories(options),
|
||||
emptyList(),
|
||||
sourcesBackupCreator.backupExtensionInfo(backupManga),
|
||||
preferenceBackupCreator.backupAppPreferences(options),
|
||||
preferenceBackupCreator.backupSourcePreferences(options),
|
||||
)
|
||||
|
||||
var file: UniFile? = null
|
||||
try {
|
||||
file = if (isAutoBackup) {
|
||||
|
@ -91,8 +89,8 @@ class BackupCreator(
|
|||
throw IllegalStateException("Failed to get handle on file")
|
||||
}
|
||||
|
||||
val byteArray = backup?.let { parser.encodeToByteArray(Backup.serializer(), it) }
|
||||
if (byteArray == null || byteArray.isEmpty()) {
|
||||
val byteArray = parser.encodeToByteArray(Backup.serializer(), backup)
|
||||
if (byteArray.isEmpty()) {
|
||||
throw IllegalStateException(context.getString(MR.strings.empty_backup_error))
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
package eu.kanade.tachiyomi.data.backup.create.creators
|
||||
|
||||
import eu.kanade.tachiyomi.data.backup.create.BackupOptions
|
||||
import eu.kanade.tachiyomi.data.backup.models.BackupManga
|
||||
import eu.kanade.tachiyomi.data.backup.models.BackupSource
|
||||
import eu.kanade.tachiyomi.domain.manga.models.Manga
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
@ -10,9 +9,7 @@ import uy.kohesive.injekt.api.get
|
|||
class SourcesBackupCreator(
|
||||
private val sourceManager: SourceManager = Injekt.get(),
|
||||
) {
|
||||
fun backupExtensionInfo(mangas: List<Manga>, options: BackupOptions): List<BackupSource> {
|
||||
if (!options.libraryEntries) return emptyList()
|
||||
|
||||
fun backupExtensionInfo(mangas: List<BackupManga>): List<BackupSource> {
|
||||
return mangas
|
||||
.asSequence()
|
||||
.map { it.source }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue