Move DB transaction blocks to only the DB portions of restore logic

This commit is contained in:
arkon 2020-05-09 09:57:03 -04:00
parent 6b3b98cf57
commit 63f3180dff

View File

@ -230,14 +230,13 @@ class BackupRestoreService : Service() {
private fun restoreCategories(categoriesJson: JsonElement) {
db.inTransaction {
backupManager.restoreCategories(categoriesJson.asJsonArray)
}
restoreProgress += 1
showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.categories))
}
}
private fun restoreManga(mangaJson: JsonObject) {
db.inTransaction {
val manga = backupManager.parser.fromJson<MangaImpl>(mangaJson.get(MANGA))
val chapters = backupManager.parser.fromJson<List<ChapterImpl>>(
mangaJson.get(CHAPTERS)
@ -265,7 +264,6 @@ class BackupRestoreService : Service() {
restoreProgress += 1
showRestoreProgress(restoreProgress, restoreAmount, manga.title)
}
}
/**
* Returns a manga restore observable
@ -287,6 +285,7 @@ class BackupRestoreService : Service() {
val source = backupManager.sourceManager.getOrStub(manga.source)
val dbManga = backupManager.getMangaFromDatabase(manga)
db.inTransaction {
if (dbManga == null) {
// Manga not in database
restoreMangaFetch(source, manga, chapters, categories, history, tracks)
@ -297,6 +296,7 @@ class BackupRestoreService : Service() {
restoreMangaNoFetch(source, manga, chapters, categories, history, tracks)
}
}
}
/**
* [Observable] that fetches manga information