From c7fcfbd095d0607fa76555db1d70c1eb4349e33c Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Tue, 7 Apr 2026 20:55:05 +0530 Subject: [PATCH] fix: adjust order handling in HomeCatalogSettingsRepository --- .../features/home/HomeCatalogSettingsRepository.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeCatalogSettingsRepository.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeCatalogSettingsRepository.kt index 9a7411fc..bb36428a 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeCatalogSettingsRepository.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/home/HomeCatalogSettingsRepository.kt @@ -238,11 +238,13 @@ object HomeCatalogSettingsRepository { val catalogEntries = definitions.map { UnifiedEntry(it.key, false) } val collectionEntries = collectionDefinitions.map { UnifiedEntry(it.key, true) } val allEntries = catalogEntries + collectionEntries + val knownKeys = allEntries.mapTo(linkedSetOf(), UnifiedEntry::key) + var nextOrder = (current.values.maxOfOrNull(StoredHomeCatalogPreference::order) ?: -1) + 1 val orderedEntries = allEntries.mapIndexed { defaultIndex, entry -> Triple( entry, - current[entry.key]?.order ?: (definitions.size + defaultIndex), + current[entry.key]?.order ?: (nextOrder + defaultIndex), defaultIndex, ) }.sortedWith( @@ -252,9 +254,11 @@ object HomeCatalogSettingsRepository { ), ).map { it.first } - val normalized = mutableMapOf() + val normalized = current + .filterKeys { it !in knownKeys } + .toMutableMap() var enabledHeroSourceCount = 0 - orderedEntries.forEachIndexed { index, entry -> + orderedEntries.forEach { entry -> val stored = current[entry.key] val heroSourceEnabled = if (entry.isCollection) { false @@ -270,7 +274,7 @@ object HomeCatalogSettingsRepository { customTitle = stored?.customTitle.orEmpty(), enabled = stored?.enabled ?: true, heroSourceEnabled = heroSourceEnabled, - order = index, + order = stored?.order ?: nextOrder++, ) } preferences = normalized