From e987ba8c3e3b072fa5c695ba7ddde07c8325b04e Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Fri, 6 Nov 2020 14:24:55 -0500 Subject: [PATCH] Lets try this out for full backup categories --- .../data/backup/full/FullBackupManager.kt | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt index 376352252..b7e785fd6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt @@ -345,15 +345,12 @@ class FullBackupManager(context: Context) : AbstractBackupManager(context) { internal fun restoreCategoriesForManga(manga: Manga, categories: List, backupCategories: List) { val dbCategories = databaseHelper.getCategories().executeAsBlocking() val mangaCategoriesToUpdate = mutableListOf() - categories.forEach { backupCategoryOrder -> - backupCategories.firstOrNull { - it.order == backupCategoryOrder - }?.let { backupCategory -> - dbCategories.firstOrNull { dbCategory -> - dbCategory.name == backupCategory.name - }?.let { dbCategory -> - mangaCategoriesToUpdate.add(MangaCategory.create(manga, dbCategory)) - } + val mappedCategories = categories.mapNotNull { mangaCategory -> backupCategories.firstOrNull { mangaCategory == it.order }?.let { it to mangaCategory } } + mappedCategories.forEach { mappedCategory -> + dbCategories.firstOrNull { dbCategory -> + dbCategory.name == mappedCategory.first.name + }?.also { dbCategory -> + mangaCategoriesToUpdate += MangaCategory.create(manga, dbCategory) } } @@ -521,7 +518,7 @@ class FullBackupManager(context: Context) : AbstractBackupManager(context) { preferences.eh_savedSearches() .set( ( - backupSavedSearches.filter { backupSavedSearch -> currentSavedSearches.all { it.name != backupSavedSearch.name || it.source != backupSavedSearch.source } } + backupSavedSearches.filter { backupSavedSearch -> currentSavedSearches.none { it.name == backupSavedSearch.name && it.source == backupSavedSearch.source } } .map { "${it.source}:" + Json.encodeToString( JsonSavedSearch(