mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Some restore code refactoring
This commit is contained in:
		| @@ -9,6 +9,7 @@ import android.os.IBinder | ||||
| import android.os.PowerManager | ||||
| import com.github.salomonbrys.kotson.fromJson | ||||
| import com.google.gson.JsonArray | ||||
| import com.google.gson.JsonElement | ||||
| import com.google.gson.JsonParser | ||||
| import com.google.gson.stream.JsonReader | ||||
| import eu.kanade.tachiyomi.R | ||||
| @@ -221,45 +222,13 @@ class BackupRestoreService : Service() { | ||||
|                 errors.clear() | ||||
|  | ||||
|                 // Restore categories | ||||
|                 json.get(CATEGORIES)?.let { | ||||
|                     backupManager.restoreCategories(it.asJsonArray) | ||||
|                     restoreProgress += 1 | ||||
|                     showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.categories)) | ||||
|                 } | ||||
|                 restoreCategories(json.get(CATEGORIES)) | ||||
|  | ||||
|                 mangasJson | ||||
|             } | ||||
|             .flatMap { Observable.from(it) } | ||||
|             .concatMap { | ||||
|                 val obj = it.asJsonObject | ||||
|                 val manga = backupManager.parser.fromJson<MangaImpl>(obj.get(MANGA)) | ||||
|                 val chapters = backupManager.parser.fromJson<List<ChapterImpl>>( | ||||
|                     obj.get(CHAPTERS) | ||||
|                         ?: JsonArray() | ||||
|                 ) | ||||
|                 val categories = backupManager.parser.fromJson<List<String>>( | ||||
|                     obj.get(CATEGORIES) | ||||
|                         ?: JsonArray() | ||||
|                 ) | ||||
|                 val history = backupManager.parser.fromJson<List<DHistory>>( | ||||
|                     obj.get(HISTORY) | ||||
|                         ?: JsonArray() | ||||
|                 ) | ||||
|                 val tracks = backupManager.parser.fromJson<List<TrackImpl>>( | ||||
|                     obj.get(TRACK) | ||||
|                         ?: JsonArray() | ||||
|                 ) | ||||
|  | ||||
|                 val observable = getMangaRestoreObservable(manga, chapters, categories, history, tracks) | ||||
|                 if (observable != null) { | ||||
|                     observable | ||||
|                 } else { | ||||
|                     errors.add(Date() to "${manga.title} - ${getString(R.string.source_not_found)}") | ||||
|                     restoreProgress += 1 | ||||
|                     val content = getString(R.string.dialog_restoring_source_not_found, manga.title.chop(15)) | ||||
|                     showRestoreProgress(restoreProgress, restoreAmount, manga.title, content) | ||||
|                     Observable.just(manga) | ||||
|                 } | ||||
|                 restoreManga(it) | ||||
|             } | ||||
|             .toList() | ||||
|             .doOnNext { | ||||
| @@ -287,6 +256,46 @@ class BackupRestoreService : Service() { | ||||
|             .onErrorReturn { emptyList() } | ||||
|     } | ||||
|  | ||||
|     private fun restoreCategories(categoriesJson: JsonElement) { | ||||
|         backupManager.restoreCategories(categoriesJson.asJsonArray) | ||||
|         restoreProgress += 1 | ||||
|         showRestoreProgress(restoreProgress, restoreAmount, getString(R.string.categories)) | ||||
|     } | ||||
|  | ||||
|     private fun restoreManga(mangaJson: JsonElement): Observable<out Manga>? { | ||||
|         val obj = mangaJson.asJsonObject | ||||
|  | ||||
|         val manga = backupManager.parser.fromJson<MangaImpl>(obj.get(MANGA)) | ||||
|         val chapters = backupManager.parser.fromJson<List<ChapterImpl>>( | ||||
|             obj.get(CHAPTERS) | ||||
|                 ?: JsonArray() | ||||
|         ) | ||||
|         val categories = backupManager.parser.fromJson<List<String>>( | ||||
|             obj.get(CATEGORIES) | ||||
|                 ?: JsonArray() | ||||
|         ) | ||||
|         val history = backupManager.parser.fromJson<List<DHistory>>( | ||||
|             obj.get(HISTORY) | ||||
|                 ?: JsonArray() | ||||
|         ) | ||||
|         val tracks = backupManager.parser.fromJson<List<TrackImpl>>( | ||||
|             obj.get(TRACK) | ||||
|                 ?: JsonArray() | ||||
|         ) | ||||
|  | ||||
|         val observable = getMangaRestoreObservable(manga, chapters, categories, history, tracks) | ||||
|         return if (observable != null) { | ||||
|             observable | ||||
|         } else { | ||||
|             errors.add(Date() to "${manga.title} - ${getString(R.string.source_not_found)}") | ||||
|             restoreProgress += 1 | ||||
|             val content = | ||||
|                 getString(R.string.dialog_restoring_source_not_found, manga.title.chop(15)) | ||||
|             showRestoreProgress(restoreProgress, restoreAmount, manga.title, content) | ||||
|             Observable.just(manga) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Write errors to error log | ||||
|      */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user