diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceRestorer.kt index 2d73533c6..f5dc687ab 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceRestorer.kt @@ -113,7 +113,11 @@ class PreferenceRestorer( // KMK --> when (key) { SourcePreferences.PINNED_SOURCES_PREF_KEY -> - EXHMigrations.migratePinnedSources(value.value) + restorePinnedSourcesPreference( + key, + value.value, + preferenceStore, + ) else -> // KMK <-- preferenceStore.getStringSet(key).set(value.value) @@ -151,4 +155,15 @@ class PreferenceRestorer( } return true } + + private fun restorePinnedSourcesPreference( + key: String, + value: Set, + preferenceStore: PreferenceStore, + ) { + if (value.isEmpty()) return + + val valueToSet = EXHMigrations.migrateSourceIds(value) + preferenceStore.getStringSet(key).set(valueToSet) + } } diff --git a/app/src/main/java/exh/EXHMigrations.kt b/app/src/main/java/exh/EXHMigrations.kt index 8966aa2b9..ffe00517a 100644 --- a/app/src/main/java/exh/EXHMigrations.kt +++ b/app/src/main/java/exh/EXHMigrations.kt @@ -140,29 +140,29 @@ object EXHMigrations { /** * Migrate old source ID of delegated sources in old backup */ - fun migratePinnedSources(pinnedSources: Set): Set { - var pinned = pinnedSources - if (NHENTAI_OLD_ID.toString() in pinned) { - pinned = pinned.minus(NHENTAI_OLD_ID.toString()) + fun migrateSourceIds(oldSourceIds: Set): Set { + var newSourceIds = oldSourceIds + if (NHENTAI_OLD_ID.toString() in newSourceIds) { + newSourceIds = newSourceIds.minus(NHENTAI_OLD_ID.toString()) .plus(NHENTAI_SOURCE_ID.toString()) } - if (TSUMINO_OLD_ID.toString() in pinned) { - pinned = pinned.minus(TSUMINO_OLD_ID.toString()) + if (TSUMINO_OLD_ID.toString() in newSourceIds) { + newSourceIds = newSourceIds.minus(TSUMINO_OLD_ID.toString()) .plus(TSUMINO_SOURCE_ID.toString()) } - if (HBROWSE_OLD_ID.toString() in pinned) { - pinned = pinned.minus(HBROWSE_OLD_ID.toString()) + if (HBROWSE_OLD_ID.toString() in newSourceIds) { + newSourceIds = newSourceIds.minus(HBROWSE_OLD_ID.toString()) .plus(HBROWSE_SOURCE_ID.toString()) } - if (EH_OLD_ID.toString() in pinned) { - pinned = pinned.minus(EH_OLD_ID.toString()) + if (EH_OLD_ID.toString() in newSourceIds) { + newSourceIds = newSourceIds.minus(EH_OLD_ID.toString()) .plus(EH_SOURCE_ID.toString()) } - if (EXH_OLD_ID.toString() in pinned) { - pinned = pinned.minus(EXH_OLD_ID.toString()) + if (EXH_OLD_ID.toString() in newSourceIds) { + newSourceIds = newSourceIds.minus(EXH_OLD_ID.toString()) .plus(EXH_SOURCE_ID.toString()) } - return pinned + return newSourceIds } // KMK -->