mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Move DB transaction blocks to only the DB portions of restore logic
(cherry picked from commit 63f3180dff)
# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestoreService.kt
			
			
This commit is contained in:
		| @@ -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<MangaImpl>(mangaJson.get(MANGA)) | ||||
|             val chapters = backupManager.parser.fromJson<List<ChapterImpl>>( | ||||
|                 mangaJson.get(CHAPTERS) | ||||
|                     ?: JsonArray() | ||||
|             ) | ||||
|             val categories = backupManager.parser.fromJson<List<String>>( | ||||
|                 mangaJson.get(CATEGORIES) | ||||
|                     ?: JsonArray() | ||||
|             ) | ||||
|             val history = backupManager.parser.fromJson<List<DHistory>>( | ||||
|                 mangaJson.get(HISTORY) | ||||
|                     ?: JsonArray() | ||||
|             ) | ||||
|             val tracks = backupManager.parser.fromJson<List<TrackImpl>>( | ||||
|                 mangaJson.get(TRACK) | ||||
|                     ?: JsonArray() | ||||
|             ) | ||||
|         var manga = backupManager.parser.fromJson<MangaImpl>(mangaJson.get(MANGA)) | ||||
|         val chapters = backupManager.parser.fromJson<List<ChapterImpl>>( | ||||
|             mangaJson.get(CHAPTERS) | ||||
|                 ?: JsonArray() | ||||
|         ) | ||||
|         val categories = backupManager.parser.fromJson<List<String>>( | ||||
|             mangaJson.get(CATEGORIES) | ||||
|                 ?: JsonArray() | ||||
|         ) | ||||
|         val history = backupManager.parser.fromJson<List<DHistory>>( | ||||
|             mangaJson.get(HISTORY) | ||||
|                 ?: JsonArray() | ||||
|         ) | ||||
|         val tracks = backupManager.parser.fromJson<List<TrackImpl>>( | ||||
|             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) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user