From a5522ef732e0328844f6a7df8047eb2c9c0a45e6 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Sat, 8 Jun 2024 06:38:35 +0600 Subject: [PATCH] Check category order before restoring from backup Closes #632 Co-authored-by: Cologler <10906962+Cologler@users.noreply.github.com> (cherry picked from commit 119bcbf8ed2415664922ea77fadf0da1165d1732) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt --- .../restore/restorers/CategoriesRestorer.kt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt index 36539b211..23a2d47fa 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/CategoriesRestorer.kt @@ -21,14 +21,15 @@ class CategoriesRestorer( val categories = backupCategories .sortedBy { it.order } - .distinctBy { it.name } .map { - val newOrder = nextOrder++ - dbCategoriesByName[it.name] - ?: handler.awaitOneExecutable { - categoriesQueries.insert(it.name, newOrder, it.flags) - categoriesQueries.selectLastInsertedRowId() - }.let { id -> it.toCategory(id).copy(order = newOrder) } + val dbCategory = dbCategoriesByName[it.name] + if (dbCategory != null) return@map dbCategory + val order = nextOrder++ + handler.awaitOneExecutable { + categoriesQueries.insert(it.name, order, it.flags) + categoriesQueries.selectLastInsertedRowId() + } + .let { id -> it.toCategory(id).copy(order = order) } } libraryPreferences.categorizedDisplaySettings().set(