From a0462fb480520c961c4fd65d06f0d4d7624451ff Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 9 May 2020 09:57:03 -0400 Subject: [PATCH] Move DB transaction blocks to only the DB portions of restore logic (cherry picked from commit 63f3180dff643355a000ff4071105a12139d18b0) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt --- .../data/backup/BackupRestoreService.kt | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt index 19c8f7a14..686a43a93 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt @@ -253,45 +253,43 @@ class BackupRestoreService : Service() { private fun restoreCategories(categoriesJson: JsonElement) { db.inTransaction { backupManager.restoreCategories(categoriesJson.asJsonArray) - - restoreProgress += 1 - showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.categories)) } + + restoreProgress += 1 + showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.categories)) } private fun restoreManga(mangaJson: JsonObject) { - db.inTransaction { - var manga = backupManager.parser.fromJson(mangaJson.get(MANGA)) - val chapters = backupManager.parser.fromJson>( - mangaJson.get(CHAPTERS) - ?: JsonArray() - ) - val categories = backupManager.parser.fromJson>( - mangaJson.get(CATEGORIES) - ?: JsonArray() - ) - val history = backupManager.parser.fromJson>( - mangaJson.get(HISTORY) - ?: JsonArray() - ) - val tracks = backupManager.parser.fromJson>( - mangaJson.get(TRACK) - ?: JsonArray() - ) + var manga = backupManager.parser.fromJson(mangaJson.get(MANGA)) + val chapters = backupManager.parser.fromJson>( + mangaJson.get(CHAPTERS) + ?: JsonArray() + ) + val categories = backupManager.parser.fromJson>( + mangaJson.get(CATEGORIES) + ?: JsonArray() + ) + val history = backupManager.parser.fromJson>( + mangaJson.get(HISTORY) + ?: JsonArray() + ) + val tracks = backupManager.parser.fromJson>( + mangaJson.get(TRACK) + ?: JsonArray() + ) - // EXH --> - manga = EXHMigrations.migrateBackupEntry(manga) - // <-- EXH + // EXH --> + manga = EXHMigrations.migrateBackupEntry(manga) + // <-- EXH - try { - restoreMangaData(manga, chapters, categories, history, tracks) - } catch (e: Exception) { - errors.add(Date() to "${manga.title} - ${getString(R.string.source_not_found)}") - } - - restoreProgress += 1 - showRestoreProgress(restoreProgress, restoreAmount, manga.title) + try { + restoreMangaData(manga, chapters, categories, history, tracks) + } catch (e: Exception) { + errors.add(Date() to "${manga.title} - ${getString(R.string.source_not_found)}") } + + restoreProgress += 1 + showRestoreProgress(restoreProgress, restoreAmount, manga.title) } /** @@ -314,14 +312,16 @@ class BackupRestoreService : Service() { val source = backupManager.sourceManager.getOrStub(manga.source) val dbManga = backupManager.getMangaFromDatabase(manga) - if (dbManga == null) { - // Manga not in database - restoreMangaFetch(source, manga, chapters, categories, history, tracks) - } else { // Manga in database - // Copy information from manga already in database - backupManager.restoreMangaNoFetch(manga, dbManga) - // Fetch rest of manga information - restoreMangaNoFetch(source, manga, chapters, categories, history, tracks) + db.inTransaction { + if (dbManga == null) { + // Manga not in database + restoreMangaFetch(source, manga, chapters, categories, history, tracks) + } else { // Manga in database + // Copy information from manga already in database + backupManager.restoreMangaNoFetch(manga, dbManga) + // Fetch rest of manga information + restoreMangaNoFetch(source, manga, chapters, categories, history, tracks) + } } }